Tests tf.function in 1.X.
(self)
| 221 | |
| 222 | @test_util.run_in_graph_and_eager_modes |
| 223 | def testFunctions(self): |
| 224 | """Tests tf.function in 1.X.""" |
| 225 | |
| 226 | @def_function.function |
| 227 | def plus_placeholder(x, placeholder): |
| 228 | return x + placeholder |
| 229 | |
| 230 | with ops.Graph().as_default(): |
| 231 | placeholder = array_ops.placeholder( |
| 232 | dtype=dtypes.float32, shape=[1], name='input') |
| 233 | variable_node = variables.Variable(1.0, name='variable_node') |
| 234 | defun_node = plus_placeholder(variable_node, placeholder) |
| 235 | output_node = math_ops.multiply(defun_node, 2.0, name='output_node') |
| 236 | |
| 237 | # Initialize variables in the model. |
| 238 | sess = session.Session() |
| 239 | sess.run(variables.variables_initializer([variable_node])) |
| 240 | |
| 241 | # Convert model and ensure model is not None. |
| 242 | converter = lite.TFLiteConverter.from_session(sess, [placeholder], |
| 243 | [output_node]) |
| 244 | converter.experimental_enable_mlir_converter = True |
| 245 | tflite_model = converter.convert() |
| 246 | |
| 247 | # Check values from converted model. |
| 248 | interpreter = Interpreter(model_content=tflite_model) |
| 249 | interpreter.allocate_tensors() |
| 250 | |
| 251 | input_details = interpreter.get_input_details() |
| 252 | self.assertEqual(1, len(input_details)) |
| 253 | self.assertEqual('input', input_details[0]['name']) |
| 254 | self.assertEqual(np.float32, input_details[0]['dtype']) |
| 255 | self.assertTrue(([1] == input_details[0]['shape']).all()) |
| 256 | self.assertEqual((0., 0.), input_details[0]['quantization']) |
| 257 | |
| 258 | output_details = interpreter.get_output_details() |
| 259 | self.assertEqual(1, len(output_details)) |
| 260 | self.assertEqual('output_node', output_details[0]['name']) |
| 261 | self.assertEqual(np.float32, output_details[0]['dtype']) |
| 262 | self.assertTrue(([1] == output_details[0]['shape']).all()) |
| 263 | self.assertEqual((0., 0.), output_details[0]['quantization']) |
| 264 | |
| 265 | |
| 266 | class FromConcreteFunctionTest(test_util.TensorFlowTestCase): |
nothing calls this directly
no test coverage detected