Skip to content

Commit 0e7a0b6

Browse files
author
Panos Achlioptas
committed
mdb
1 parent 72a5d55 commit 0e7a0b6

1 file changed

Lines changed: 149 additions & 57 deletions

File tree

notebooks/train_single_class_ae.ipynb

Lines changed: 149 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,21 @@
22
"cells": [
33
{
44
"cell_type": "code",
5-
"execution_count": 4,
5+
"execution_count": 23,
66
"metadata": {
77
"collapsed": false
88
},
99
"outputs": [],
1010
"source": [
11+
"import os.path as osp\n",
12+
"\n",
1113
"from latent_3d_points.src.ae_templates import mlp_architecture_ala_iclr_18, default_train_params\n",
1214
"from latent_3d_points.src.autoencoder import Configuration as Conf\n",
1315
"from latent_3d_points.src.point_net_ae import PointNetAutoEncoder\n",
14-
"from latent_3d_points.src.in_out import snc_category_to_synth_id"
16+
"from latent_3d_points.src.in_out import snc_category_to_synth_id\n",
17+
"\n",
18+
"from latent_3d_points.external.general_tools.in_out.basics import create_dir\n",
19+
"from latent_3d_points.external.general_tools.notebook.tf import reset_tf_graph"
1520
]
1621
},
1722
{
@@ -23,23 +28,13 @@
2328
"outputs": [],
2429
"source": [
2530
"# from tf_lab.in_out.basics import Data_Splitter\n",
26-
"\n",
2731
"# from tf_lab.point_clouds.in_out import load_point_clouds_from_filenames, PointCloudDataSet\n",
28-
"\n",
2932
"# from tf_lab.data_sets.shape_net import pc_loader as snc_loader\n",
33+
"# from tf_lab.iclr.helper import load_multiple_version_of_pcs, find_best_validation_epoch_from_train_stats\n",
3034
"\n",
31-
"# from tf_lab.iclr.helper import load_multiple_version_of_pcs, find_best_validation_epoch_from_train_stats"
35+
"# TODO : DATA LOADING"
3236
]
3337
},
34-
{
35-
"cell_type": "code",
36-
"execution_count": 5,
37-
"metadata": {
38-
"collapsed": false
39-
},
40-
"outputs": [],
41-
"source": []
42-
},
4338
{
4439
"cell_type": "code",
4540
"execution_count": null,
@@ -53,23 +48,151 @@
5348
"%matplotlib inline"
5449
]
5550
},
51+
{
52+
"cell_type": "markdown",
53+
"metadata": {},
54+
"source": [
55+
"Define Basic Parameters"
56+
]
57+
},
5658
{
5759
"cell_type": "code",
58-
"execution_count": null,
60+
"execution_count": 26,
5961
"metadata": {
60-
"collapsed": true
62+
"collapsed": false
6163
},
62-
"outputs": [],
64+
"outputs": [
65+
{
66+
"name": "stdout",
67+
"output_type": "stream",
68+
"text": [
69+
"Give me the class name (e.g. \"chair\"): chair\n"
70+
]
71+
}
72+
],
6373
"source": [
64-
"top_data_dir = '/orions4-zfs/projects/optas/DATA/'\n",
65-
"experiment_tag = 'mlp_with_split_1pc_usampled_bnorm_on_encoder_only'\n",
74+
"top_data_dir = '../data/'\n",
75+
"experiment_name = 'single_class_ae'\n",
6676
"n_pc_points = 2048\n",
67-
"\n",
68-
"class_name = raw_input('Give me the class type: ').lower()\n",
77+
"class_name = raw_input('Give me the class name (e.g. \"chair\"): ').lower()\n",
6978
"bneck_size = 128\n",
7079
"ae_loss = 'emd'"
7180
]
7281
},
82+
{
83+
"cell_type": "markdown",
84+
"metadata": {},
85+
"source": [
86+
"Use Default Training Parameters\n",
87+
"\n",
88+
"{'batch_size': 50,\n",
89+
" 'denoising': False, # By default our AE is not denoising.\n",
90+
" 'learning_rate': 0.0005,\n",
91+
" 'loss_display_step': 1,\n",
92+
" 'saver_step': 10,\n",
93+
" 'training_epochs': 500,\n",
94+
" 'z_rotate': False}\n"
95+
]
96+
},
97+
{
98+
"cell_type": "code",
99+
"execution_count": 38,
100+
"metadata": {
101+
"collapsed": false
102+
},
103+
"outputs": [],
104+
"source": [
105+
"train_dir = create_dir(osp.join(top_data_dir, experiment_name))\n",
106+
"train_params = default_train_params()\n",
107+
"encoder, decoder, enc_args, dec_args = mlp_architecture_ala_iclr_18(n_pc_points, bneck_size)"
108+
]
109+
},
110+
{
111+
"cell_type": "code",
112+
"execution_count": 39,
113+
"metadata": {
114+
"collapsed": false
115+
},
116+
"outputs": [],
117+
"source": [
118+
"conf = Conf(n_input = [n_pc_points, 3],\n",
119+
" loss = ae_loss,\n",
120+
" training_epochs = train_params['training_epochs'],\n",
121+
" batch_size = train_params['batch_size'],\n",
122+
" denoising = train_params['denoising'],\n",
123+
" learning_rate = train_params['learning_rate'],\n",
124+
" train_dir = train_dir,\n",
125+
" loss_display_step = train_params['loss_display_step'],\n",
126+
" saver_step = train_params['saver_step'],\n",
127+
" z_rotate = train_params['z_rotate'],\n",
128+
" encoder = encoder,\n",
129+
" decoder = decoder,\n",
130+
" encoder_args = enc_args,\n",
131+
" decoder_args = dec_args\n",
132+
" )\n",
133+
"conf.experiment_name = experiment_name\n",
134+
"conf.held_out_step = 5\n",
135+
"conf.save(osp.join(train_dir, 'configuration'))"
136+
]
137+
},
138+
{
139+
"cell_type": "markdown",
140+
"metadata": {},
141+
"source": [
142+
"Build AE Model."
143+
]
144+
},
145+
{
146+
"cell_type": "code",
147+
"execution_count": 33,
148+
"metadata": {
149+
"collapsed": false
150+
},
151+
"outputs": [
152+
{
153+
"name": "stdout",
154+
"output_type": "stream",
155+
"text": [
156+
"Building Encoder\n",
157+
"encoder_conv_layer_0 conv params = 256 bnorm params = 128\n",
158+
"Tensor(\"single_class_ae_2/Relu:0\", shape=(?, 2048, 64), dtype=float32)\n",
159+
"output size: 131072 \n",
160+
"\n",
161+
"encoder_conv_layer_1 conv params = 8320 bnorm params = 256\n",
162+
"Tensor(\"single_class_ae_2/Relu_1:0\", shape=(?, 2048, 128), dtype=float32)\n",
163+
"output size: 262144 \n",
164+
"\n",
165+
"encoder_conv_layer_2 conv params = 16512 bnorm params = 256\n",
166+
"Tensor(\"single_class_ae_2/Relu_2:0\", shape=(?, 2048, 128), dtype=float32)\n",
167+
"output size: 262144 \n",
168+
"\n",
169+
"encoder_conv_layer_3 conv params = 33024 bnorm params = 512\n",
170+
"Tensor(\"single_class_ae_2/Relu_3:0\", shape=(?, 2048, 256), dtype=float32)\n",
171+
"output size: 524288 \n",
172+
"\n",
173+
"encoder_conv_layer_4 conv params = 32896 bnorm params = 256\n",
174+
"Tensor(\"single_class_ae_2/Relu_4:0\", shape=(?, 2048, 128), dtype=float32)\n",
175+
"output size: 262144 \n",
176+
"\n",
177+
"Tensor(\"single_class_ae_2/Max:0\", shape=(?, 128), dtype=float32)\n",
178+
"Building Decoder\n",
179+
"decoder_fc_0 FC params = 33024 Tensor(\"single_class_ae_2/Relu_5:0\", shape=(?, 256), dtype=float32)\n",
180+
"output size: 256 \n",
181+
"\n",
182+
"decoder_fc_1 FC params = 65792 Tensor(\"single_class_ae_2/Relu_6:0\", shape=(?, 256), dtype=float32)\n",
183+
"output size: 256 \n",
184+
"\n",
185+
"decoder_fc_2 FC params = 1579008 Tensor(\"single_class_ae_2/decoder_fc_2/BiasAdd:0\", shape=(?, 6144), dtype=float32)\n",
186+
"output size: 6144 \n",
187+
"\n"
188+
]
189+
}
190+
],
191+
"source": [
192+
"reset_tf_graph()\n",
193+
"ae = PointNetAutoEncoder(conf.experiment_name, conf)"
194+
]
195+
},
73196
{
74197
"cell_type": "code",
75198
"execution_count": null,
@@ -78,42 +201,11 @@
78201
},
79202
"outputs": [],
80203
"source": [
81-
"top_lin_dir = '/orions4-zfs/projects/lins2/Panos_Space/DATA/'\n",
82-
"train_params = default_train_params()\n",
83-
"\n",
84-
"for bneck in bneck_list:\n",
85-
" experiment_id = '_'.join(['ae', class_name, experiment_tag, str(n_pc_points), 'pts', str(bneck), 'bneck', loss])\n",
86-
" train_dir = osp.join(top_lin_dir, 'OUT/iclr/nn_models/', experiment_id)\n",
87-
" create_dir(train_dir)\n",
88-
"\n",
89-
" reset_tf_graph() \n",
90-
" encoder, decoder, enc_args, dec_args = mlp_architecture_ala_iclr_18(n_pc_points, bneck) \n",
91-
" conf = Conf(n_input = [n_pc_points, 3],\n",
92-
" loss = loss,\n",
93-
" training_epochs = 500,\n",
94-
" batch_size = train_params['batch_size'],\n",
95-
" denoising = False,\n",
96-
" learning_rate = train_params['learning_rate'],\n",
97-
" train_dir = train_dir,\n",
98-
" loss_display_step = 1,\n",
99-
" saver_step = train_params['saver_step'],\n",
100-
" z_rotate = False,\n",
101-
" encoder = encoder,\n",
102-
" decoder = decoder,\n",
103-
" encoder_args = enc_args,\n",
104-
" decoder_args = dec_args\n",
105-
" )\n",
106-
" print conf\n",
107-
" conf.experiment_name = 'experiment_' + str(experiment_id)\n",
108-
" conf.held_out_step = 5\n",
109-
" conf.save(osp.join(train_dir, 'configuration'))\n",
110-
" ae = PointNetAutoEncoder(conf.experiment_name, conf)\n",
111-
"\n",
112-
" buf_size = 1 # flush each line\n",
113-
" fout = open(osp.join(conf.train_dir, 'train_stats.txt'), 'a', buf_size)\n",
114-
"# train_stats = ae.train(in_data['train'], conf, log_file=fout, held_out_data=in_data['val'])\n",
115-
" train_stats = ae.train(in_data['train'], conf, log_file=fout, held_out_data=in_data['test'])\n",
116-
" fout.close()"
204+
"# Start training\n",
205+
"buf_size = 1 # flush each line\n",
206+
"fout = open(osp.join(conf.train_dir, 'train_stats.txt'), 'a', buf_size)\n",
207+
"train_stats = ae.train(in_data['train'], conf, log_file=fout, held_out_data=in_data['val'])\n",
208+
"fout.close()"
117209
]
118210
}
119211
],

0 commit comments

Comments
 (0)