Code Duplication    Length = 16-19 lines in 3 locations

pyActLearn/learning/nn/sda.py 2 locations

@@ 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():

pyActLearn/learning/nn/mlp.py 1 location

@@ 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