Test a SavedModel.
(self)
| 1374 | return saved_model_dir |
| 1375 | |
| 1376 | def testSimpleModel(self): |
| 1377 | """Test a SavedModel.""" |
| 1378 | saved_model_dir = self._createSavedModel(shape=[1, 16, 16, 3]) |
| 1379 | |
| 1380 | # Convert model and ensure model is not None. |
| 1381 | converter = lite.TFLiteConverter.from_saved_model(saved_model_dir) |
| 1382 | tflite_model = converter.convert() |
| 1383 | self.assertTrue(tflite_model) |
| 1384 | |
| 1385 | interpreter = Interpreter(model_content=tflite_model) |
| 1386 | interpreter.allocate_tensors() |
| 1387 | |
| 1388 | input_details = interpreter.get_input_details() |
| 1389 | self.assertEqual(2, len(input_details)) |
| 1390 | self.assertEqual('inputA', input_details[0]['name']) |
| 1391 | self.assertEqual(np.float32, input_details[0]['dtype']) |
| 1392 | self.assertTrue(([1, 16, 16, 3] == input_details[0]['shape']).all()) |
| 1393 | self.assertEqual((0., 0.), input_details[0]['quantization']) |
| 1394 | |
| 1395 | self.assertEqual('inputB', input_details[1]['name']) |
| 1396 | self.assertEqual(np.float32, input_details[1]['dtype']) |
| 1397 | self.assertTrue(([1, 16, 16, 3] == input_details[1]['shape']).all()) |
| 1398 | self.assertEqual((0., 0.), input_details[1]['quantization']) |
| 1399 | |
| 1400 | output_details = interpreter.get_output_details() |
| 1401 | self.assertEqual(1, len(output_details)) |
| 1402 | self.assertEqual('add', output_details[0]['name']) |
| 1403 | self.assertEqual(np.float32, output_details[0]['dtype']) |
| 1404 | self.assertTrue(([1, 16, 16, 3] == output_details[0]['shape']).all()) |
| 1405 | self.assertEqual((0., 0.), output_details[0]['quantization']) |
| 1406 | |
| 1407 | def testNoneBatchSize(self): |
| 1408 | """Test a SavedModel, with None in input tensor's shape.""" |
nothing calls this directly
no test coverage detected