@@ 205-223 (lines=19) @@ | ||
202 | test_writer = tf.summary.FileWriter(tuning_summaries_dir + '/test') |
|
203 | valid_writer = tf.summary.FileWriter(tuning_summaries_dir + '/valid') |
|
204 | # Setup Stopping Criterion |
|
205 | if tuning_criterion == 'const_iterations': |
|
206 | _tuning_criterion = ConstIterations(num_iters=pretrain_iter_num) |
|
207 | train_x = x |
|
208 | train_y = y |
|
209 | elif tuning_criterion == 'monitor_based': |
|
210 | num_samples = x.shape[0] |
|
211 | valid_set_len = int(1 / 5 * num_samples) |
|
212 | valid_x = x[num_samples - valid_set_len:num_samples, :] |
|
213 | valid_y = y[num_samples - valid_set_len:num_samples, :] |
|
214 | train_x = x[0:num_samples - valid_set_len, :] |
|
215 | train_y = y[0:num_samples - valid_set_len, :] |
|
216 | _tuning_criterion = MonitorBased(n_steps=pretrain_iter_num, |
|
217 | monitor_fn=self.predict_accuracy, |
|
218 | monitor_fn_args=(valid_x, valid_y), |
|
219 | save_fn=tf.train.Saver().save, |
|
220 | save_fn_args=(session, tuning_summaries_dir + '/best.ckpt')) |
|
221 | else: |
|
222 | logger.error('Wrong criterion %s specified.' % pretrain_criterion) |
|
223 | return |
|
224 | injector = BatchInjector(data_x=train_x, data_y=train_y, batch_size=batch_size) |
|
225 | i = 0 |
|
226 | while _tuning_criterion.continue_learning(): |
|
@@ 141-159 (lines=19) @@ | ||
138 | test_writer = tf.summary.FileWriter(layer_summaries_dir + '/test') |
|
139 | valid_writer = tf.summary.FileWriter(layer_summaries_dir + '/valid') |
|
140 | # Get Stopping Criterion |
|
141 | if pretrain_criterion == 'const_iterations': |
|
142 | _pretrain_criterion = ConstIterations(num_iters=pretrain_iter_num) |
|
143 | train_x = x |
|
144 | train_y = y |
|
145 | elif pretrain_criterion == 'monitor_based': |
|
146 | num_samples = x.shape[0] |
|
147 | valid_set_len = int(1 / 5 * num_samples) |
|
148 | valid_x = x[num_samples - valid_set_len:num_samples, :] |
|
149 | valid_y = y[num_samples - valid_set_len:num_samples, :] |
|
150 | train_x = x[0:num_samples - valid_set_len, :] |
|
151 | train_y = y[0:num_samples - valid_set_len, :] |
|
152 | _pretrain_criterion = MonitorBased(n_steps=pretrain_iter_num, |
|
153 | monitor_fn=self.get_encode_loss, |
|
154 | monitor_fn_args=(current_layer, valid_x, valid_y), |
|
155 | save_fn=tf.train.Saver().save, |
|
156 | save_fn_args=(session, layer_summaries_dir + '/best.ckpt')) |
|
157 | else: |
|
158 | logger.error('Wrong criterion %s specified.' % pretrain_criterion) |
|
159 | return |
|
160 | injector = BatchInjector(data_x=train_x, data_y=train_y, batch_size=batch_size) |
|
161 | i = 0 |
|
162 | while _pretrain_criterion.continue_learning(): |
@@ 134-149 (lines=16) @@ | ||
131 | valid_writer = tf.summary.FileWriter(summaries_dir + '/valid') |
|
132 | session.run(tf.global_variables_initializer()) |
|
133 | # Get Stopping Criterion |
|
134 | if criterion == 'const_iteration': |
|
135 | criterion = ConstIterations(num_iters=iter_num) |
|
136 | elif criterion == 'monitor_based': |
|
137 | num_samples = x.shape[0] |
|
138 | valid_set_len = int(1/5 * num_samples) |
|
139 | valid_x = x[num_samples-valid_set_len:num_samples, :] |
|
140 | valid_y = y[num_samples-valid_set_len:num_samples, :] |
|
141 | x = x[0:num_samples-valid_set_len, :] |
|
142 | y = y[0:num_samples-valid_set_len, :] |
|
143 | _criterion = MonitorBased(n_steps=iter_num, |
|
144 | monitor_fn=self.predict_accuracy, monitor_fn_args=(valid_x, valid_y), |
|
145 | save_fn=tf.train.Saver().save, |
|
146 | save_fn_args=(session, summaries_dir + '/best.ckpt')) |
|
147 | else: |
|
148 | logger.error('Wrong criterion %s specified.' % criterion) |
|
149 | return |
|
150 | # Setup batch injector |
|
151 | injector = BatchInjector(data_x=x, data_y=y, batch_size=batch_size) |
|
152 | i = 0 |