def test_traineval(self): tf.logging.set_verbosity(tf.logging.INFO) path = PATH.decode(sys.stdout.encoding) #2 files, 64 epochs, batchsize 32 => 2*64/32 = 4 iterations dset = lambda: ds.dataset_with_preprocess(LISTFILE_1, path, epochs=4, batchsize=32, segs_per_sample=16, ) dset_eval = lambda: ds.dataset_with_preprocess(LISTFILE_1, path, epochs=1, batchsize=16, segs_per_sample=16, shuffle=False ) config = self.config.replace(save_checkpoints_steps=2) tfnet_est = TFNetEstimator(**nets.default_net(), config=config) input_fn = lambda: dset().make_one_shot_iterator().get_next() eval_input_fn = lambda: dset_eval().make_one_shot_iterator().get_next() train_spec = tf.estimator.TrainSpec(input_fn) eval_spec = tf.estimator.EvalSpec(eval_input_fn) tf.estimator.train_and_evaluate(tfnet_est, train_spec, eval_spec) self.assertIsNotNone(tfnet_est)
def test_train_data_pipe_default(self): dset = ds.dataset_with_preprocess(LISTFILE_1, self.path) itr = dset.make_one_shot_iterator().get_next() self.assertTrue(itr[0].shape.is_compatible_with( tf.TensorShape((None, 8192, 1)))) self.assertTrue(itr[1].shape.is_compatible_with( tf.TensorShape((None, 8192, 1)))) #defaults with test data shoudl throw after 1 iter with tf.Session() as sess: sess.run(itr) self.assertRaises(tf.errors.OutOfRangeError, lambda: sess.run(itr))
def main(_): path = PATH.decode(sys.stdout.encoding) dset = ds.dataset_with_preprocess( LISTFILE_1, path, epochs=1, batchsize=32, segs_per_sample=64, ) tfnet_est = TFNetEstimator(**nets.default_net(), model_dir='tests/dummymodel') tfnet_est.train(input_fn=lambda: dset.make_one_shot_iterator().get_next())
def test_train(self): """Runs a training pass with test data for 4 iterations iterations of batchsize 16""" tf.logging.set_verbosity(tf.logging.INFO) path = PATH.decode(sys.stdout.encoding) #2 files, 64 epochs, batchsize 32 => 2*64/32 = 4 iterations dset = lambda: ds.dataset_with_preprocess(LISTFILE_1, path, epochs=64, batchsize=32, ) tfnet_est = TFNetEstimator(**nets.default_net(), config=self.config) tfnet_est.train( input_fn=lambda: dset().make_one_shot_iterator().get_next()) self.assertIsNotNone(tfnet_est)
def test_train_sbr_fusion(self): tf.logging.set_verbosity(tf.logging.INFO) path = PATH.decode(sys.stdout.encoding) #2 files, 64 epochs, batchsize 32 => 2*64/32 = 4 iterations dset = lambda: ds.dataset_with_preprocess(LISTFILE_1, path, epochs=64, batchsize=16, ) netcfg = nets.build_net(copies_rate=2, time_params={}, window_length=512) tfnet_est = TFNetEstimator(**netcfg, weight_decay=0.1, config=self.config) tfnet_est.train( input_fn=lambda: dset().make_one_shot_iterator().get_next()) self.assertIsNotNone(tfnet_est)
def test_train_data_pipe_options(self): dset = ds.dataset_with_preprocess( LISTFILE_1, self.path, epochs=10, length=4096, batchsize=8, drop_remainder=True, ) itr = dset.make_one_shot_iterator().get_next() self.assertTrue(itr[0].shape.is_compatible_with( tf.TensorShape((8, 4096, 1)))) self.assertTrue(itr[1].shape.is_compatible_with( tf.TensorShape((8, 4096, 1)))) #2 files, 10 epochs => 20 samples #batch of 8 => 2 full iters, 3rd should throw with tf.Session() as sess: sess.run(itr) sess.run(itr) self.assertRaises(tf.errors.OutOfRangeError, lambda: sess.run(itr))
def test_loadmodel(self): """Test running eval from with trained model""" tf.logging.set_verbosity(tf.logging.INFO) path = PATH.decode(sys.stdout.encoding) #2 files, 64 epochs, batchsize 32 => 2*64/32 = 4 iterations dset = ds.dataset_with_preprocess( LISTFILE_1, path, epochs=1, batchsize=16, ) #RunConfig for more more printing since we are only training for very few steps config = tf.estimator.RunConfig(log_step_count_steps=1) tfnet_est = TFNetEstimator(**nets.default_net(), config=config, model_dir=DUMMY_MODEL_PATH) tfnet_est.evaluate( input_fn=lambda: dset.make_one_shot_iterator().get_next()) self.assertIsNotNone(tfnet_est)