diff options
author | Nupur Garg <nupurgarg@google.com> | 2018-08-30 18:00:59 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-08-30 18:05:15 -0700 |
commit | efe922e25f30af02d02ecfff0e4f207245e642d7 (patch) | |
tree | d46e39ff4d09a311f70f56aeb3d0c75392469b1b /tensorflow/contrib/lite/python/lite_test.py | |
parent | a41f0ef8f2978432fb2f853df645cc4145860833 (diff) |
Fix flaky tests in lite_test.py.
PiperOrigin-RevId: 211015230
Diffstat (limited to 'tensorflow/contrib/lite/python/lite_test.py')
-rw-r--r-- | tensorflow/contrib/lite/python/lite_test.py | 180 |
1 files changed, 95 insertions, 85 deletions
diff --git a/tensorflow/contrib/lite/python/lite_test.py b/tensorflow/contrib/lite/python/lite_test.py index e6aa8b0d99..d004c3ecca 100644 --- a/tensorflow/contrib/lite/python/lite_test.py +++ b/tensorflow/contrib/lite/python/lite_test.py @@ -414,6 +414,7 @@ class FromFrozenGraphFile(test_util.TensorFlowTestCase): # Write graph to file. graph_def_file = os.path.join(self.get_temp_dir(), 'model.pb') write_graph(sess.graph_def, '', graph_def_file, False) + sess.close() # Convert model and ensure model is not None. converter = lite.TocoConverter.from_frozen_graph(graph_def_file, @@ -448,6 +449,7 @@ class FromFrozenGraphFile(test_util.TensorFlowTestCase): # Write graph to file. graph_def_file = os.path.join(self.get_temp_dir(), 'model.pb') write_graph(sess.graph_def, '', graph_def_file, False) + sess.close() # Convert model and ensure model is not None. converter = lite.TocoConverter.from_frozen_graph( @@ -475,6 +477,7 @@ class FromFrozenGraphFile(test_util.TensorFlowTestCase): # Write graph to file. graph_def_file = os.path.join(self.get_temp_dir(), 'model.pb') write_graph(sess.graph_def, '', graph_def_file, False) + sess.close() # Ensure the graph with variables cannot be converted. with self.assertRaises(ValueError) as error: @@ -492,6 +495,7 @@ class FromFrozenGraphFile(test_util.TensorFlowTestCase): # Write graph to file. graph_def_file = os.path.join(self.get_temp_dir(), 'model.pbtxt') write_graph(sess.graph_def, '', graph_def_file, True) + sess.close() # Convert model and ensure model is not None. converter = lite.TocoConverter.from_frozen_graph(graph_def_file, @@ -742,26 +746,27 @@ class FromKerasFile(test_util.TensorFlowTestCase): keras.backend.clear_session() def _getSequentialModel(self): - model = keras.models.Sequential() - model.add(keras.layers.Dense(2, input_shape=(3,))) - model.add(keras.layers.RepeatVector(3)) - model.add(keras.layers.TimeDistributed(keras.layers.Dense(3))) - model.compile( - loss=keras.losses.MSE, - optimizer=keras.optimizers.RMSprop(), - metrics=[keras.metrics.categorical_accuracy], - sample_weight_mode='temporal') - x = np.random.random((1, 3)) - y = np.random.random((1, 3, 3)) - model.train_on_batch(x, y) - model.predict(x) - - try: - fd, keras_file = tempfile.mkstemp('.h5') - keras.models.save_model(model, keras_file) - finally: - os.close(fd) - return keras_file + with session.Session().as_default(): + model = keras.models.Sequential() + model.add(keras.layers.Dense(2, input_shape=(3,))) + model.add(keras.layers.RepeatVector(3)) + model.add(keras.layers.TimeDistributed(keras.layers.Dense(3))) + model.compile( + loss=keras.losses.MSE, + optimizer=keras.optimizers.RMSprop(), + metrics=[keras.metrics.categorical_accuracy], + sample_weight_mode='temporal') + x = np.random.random((1, 3)) + y = np.random.random((1, 3, 3)) + model.train_on_batch(x, y) + model.predict(x) + + try: + fd, keras_file = tempfile.mkstemp('.h5') + keras.models.save_model(model, keras_file) + finally: + os.close(fd) + return keras_file def testSequentialModel(self): """Test a Sequential tf.keras model with default inputs.""" @@ -866,25 +871,26 @@ class FromKerasFile(test_util.TensorFlowTestCase): def testFunctionalModel(self): """Test a Functional tf.keras model with default inputs.""" - inputs = keras.layers.Input(shape=(3,), name='input') - x = keras.layers.Dense(2)(inputs) - output = keras.layers.Dense(3)(x) - - model = keras.models.Model(inputs, output) - model.compile( - loss=keras.losses.MSE, - optimizer=keras.optimizers.RMSprop(), - metrics=[keras.metrics.categorical_accuracy]) - x = np.random.random((1, 3)) - y = np.random.random((1, 3)) - model.train_on_batch(x, y) - - model.predict(x) - fd, keras_file = tempfile.mkstemp('.h5') - try: - keras.models.save_model(model, keras_file) - finally: - os.close(fd) + with session.Session().as_default(): + inputs = keras.layers.Input(shape=(3,), name='input') + x = keras.layers.Dense(2)(inputs) + output = keras.layers.Dense(3)(x) + + model = keras.models.Model(inputs, output) + model.compile( + loss=keras.losses.MSE, + optimizer=keras.optimizers.RMSprop(), + metrics=[keras.metrics.categorical_accuracy]) + x = np.random.random((1, 3)) + y = np.random.random((1, 3)) + model.train_on_batch(x, y) + + model.predict(x) + fd, keras_file = tempfile.mkstemp('.h5') + try: + keras.models.save_model(model, keras_file) + finally: + os.close(fd) # Convert to TFLite model. converter = lite.TocoConverter.from_keras_model_file(keras_file) @@ -923,36 +929,39 @@ class FromKerasFile(test_util.TensorFlowTestCase): def testFunctionalModelMultipleInputs(self): """Test a Functional tf.keras model with multiple inputs and outputs.""" - a = keras.layers.Input(shape=(3,), name='input_a') - b = keras.layers.Input(shape=(3,), name='input_b') - dense = keras.layers.Dense(4, name='dense') - c = dense(a) - d = dense(b) - e = keras.layers.Dropout(0.5, name='dropout')(c) - - model = keras.models.Model([a, b], [d, e]) - model.compile( - loss=keras.losses.MSE, - optimizer=keras.optimizers.RMSprop(), - metrics=[keras.metrics.mae], - loss_weights=[1., 0.5]) - - input_a_np = np.random.random((10, 3)) - input_b_np = np.random.random((10, 3)) - output_d_np = np.random.random((10, 4)) - output_e_np = np.random.random((10, 4)) - model.train_on_batch([input_a_np, input_b_np], [output_d_np, output_e_np]) - - model.predict([input_a_np, input_b_np], batch_size=5) - fd, keras_file = tempfile.mkstemp('.h5') - keras.models.save_model(model, keras_file) + with session.Session().as_default(): + a = keras.layers.Input(shape=(3,), name='input_a') + b = keras.layers.Input(shape=(3,), name='input_b') + dense = keras.layers.Dense(4, name='dense') + c = dense(a) + d = dense(b) + e = keras.layers.Dropout(0.5, name='dropout')(c) + + model = keras.models.Model([a, b], [d, e]) + model.compile( + loss=keras.losses.MSE, + optimizer=keras.optimizers.RMSprop(), + metrics=[keras.metrics.mae], + loss_weights=[1., 0.5]) + + input_a_np = np.random.random((10, 3)) + input_b_np = np.random.random((10, 3)) + output_d_np = np.random.random((10, 4)) + output_e_np = np.random.random((10, 4)) + model.train_on_batch([input_a_np, input_b_np], [output_d_np, output_e_np]) + + model.predict([input_a_np, input_b_np], batch_size=5) + fd, keras_file = tempfile.mkstemp('.h5') + try: + keras.models.save_model(model, keras_file) + finally: + os.close(fd) # Convert to TFLite model. converter = lite.TocoConverter.from_keras_model_file(keras_file) tflite_model = converter.convert() self.assertTrue(tflite_model) - os.close(fd) os.remove(keras_file) # Check values from converted model. @@ -985,28 +994,29 @@ class FromKerasFile(test_util.TensorFlowTestCase): def testFunctionalSequentialModel(self): """Test a Functional tf.keras model containing a Sequential model.""" - model = keras.models.Sequential() - model.add(keras.layers.Dense(2, input_shape=(3,))) - model.add(keras.layers.RepeatVector(3)) - model.add(keras.layers.TimeDistributed(keras.layers.Dense(3))) - model = keras.models.Model(model.input, model.output) - - model.compile( - loss=keras.losses.MSE, - optimizer=keras.optimizers.RMSprop(), - metrics=[keras.metrics.categorical_accuracy], - sample_weight_mode='temporal') - x = np.random.random((1, 3)) - y = np.random.random((1, 3, 3)) - model.train_on_batch(x, y) - model.predict(x) - - model.predict(x) - fd, keras_file = tempfile.mkstemp('.h5') - try: - keras.models.save_model(model, keras_file) - finally: - os.close(fd) + with session.Session().as_default(): + model = keras.models.Sequential() + model.add(keras.layers.Dense(2, input_shape=(3,))) + model.add(keras.layers.RepeatVector(3)) + model.add(keras.layers.TimeDistributed(keras.layers.Dense(3))) + model = keras.models.Model(model.input, model.output) + + model.compile( + loss=keras.losses.MSE, + optimizer=keras.optimizers.RMSprop(), + metrics=[keras.metrics.categorical_accuracy], + sample_weight_mode='temporal') + x = np.random.random((1, 3)) + y = np.random.random((1, 3, 3)) + model.train_on_batch(x, y) + model.predict(x) + + model.predict(x) + fd, keras_file = tempfile.mkstemp('.h5') + try: + keras.models.save_model(model, keras_file) + finally: + os.close(fd) # Convert to TFLite model. converter = lite.TocoConverter.from_keras_model_file(keras_file) |