Split merged TFLiteConverter implementations into frozen graph converter and saved model converter
PiperOrigin-RevId: 310301390 Change-Id: I021c1fa678d6367226e1a19e646bb6d0ff9769e3
This commit is contained in:
parent
59e53e99ce
commit
0c0555d94b
File diff suppressed because it is too large
Load Diff
@ -2318,5 +2318,42 @@ class ImportOpsUtilTest(LiteTest):
|
|||||||
self.assertIsNotNone(lite.get_potentially_supported_ops())
|
self.assertIsNotNone(lite.get_potentially_supported_ops())
|
||||||
|
|
||||||
|
|
||||||
|
class DefaultConverterAttrsTest(LiteTest):
|
||||||
|
|
||||||
|
def testAttrs(self):
|
||||||
|
with ops.Graph().as_default():
|
||||||
|
in_tensor = array_ops.placeholder(shape=[2, 2], dtype=dtypes.float32)
|
||||||
|
out_tensor = in_tensor + in_tensor
|
||||||
|
sess = session.Session()
|
||||||
|
|
||||||
|
# Convert model.
|
||||||
|
converter = lite.TFLiteConverter.from_session(sess, [in_tensor],
|
||||||
|
[out_tensor])
|
||||||
|
|
||||||
|
# Assert output format.
|
||||||
|
self.assertEqual(converter.output_format, lite_constants.TFLITE)
|
||||||
|
|
||||||
|
# Assert the default inference type is float.
|
||||||
|
self.assertEqual(converter.inference_type, lite_constants.FLOAT)
|
||||||
|
|
||||||
|
# Assert the default inference type overrides are None.
|
||||||
|
self.assertIsNone(converter.inference_input_type)
|
||||||
|
self.assertIsNone(converter.inference_output_type)
|
||||||
|
|
||||||
|
# Assert the default quantization options are not set.
|
||||||
|
self.assertEqual(converter.quantized_input_stats, {})
|
||||||
|
self.assertIsNone(converter.default_ranges_stats)
|
||||||
|
self.assertFalse(converter.reorder_across_fake_quant)
|
||||||
|
self.assertFalse(converter.change_concat_input_ranges)
|
||||||
|
|
||||||
|
# Assert dropping control dependency is enabled by default.
|
||||||
|
self.assertTrue(converter.drop_control_dependency)
|
||||||
|
|
||||||
|
# Assert dumping extra information is disabled by default.
|
||||||
|
self.assertIsNone(converter.dump_graphviz_dir)
|
||||||
|
self.assertFalse(converter.dump_graphviz_video)
|
||||||
|
self.assertIsNone(converter.conversion_summary_dir)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
test.main()
|
test.main()
|
||||||
|
@ -981,6 +981,27 @@ class UnknownShapes(lite_v2_test_util.ModelTest):
|
|||||||
np.testing.assert_almost_equal(
|
np.testing.assert_almost_equal(
|
||||||
expected_value.numpy(), actual_value[0], decimal=4)
|
expected_value.numpy(), actual_value[0], decimal=4)
|
||||||
|
|
||||||
|
def testSizeInvalid(self):
|
||||||
|
|
||||||
|
@tf.function(input_signature=[
|
||||||
|
tf.TensorSpec(shape=[1, None, 16, 3], dtype=tf.float32)
|
||||||
|
])
|
||||||
|
def model(in_tensor):
|
||||||
|
return in_tensor + in_tensor
|
||||||
|
|
||||||
|
concrete_func = model.get_concrete_function()
|
||||||
|
|
||||||
|
# Test invalid shape. None after 1st dimension. Run with TOCO in order to
|
||||||
|
# invoke shape checking code.
|
||||||
|
converter = lite.TFLiteConverterV2.from_concrete_functions([concrete_func])
|
||||||
|
converter.experimental_new_converter = False
|
||||||
|
with self.assertRaises(ValueError) as error:
|
||||||
|
converter.convert()
|
||||||
|
self.assertEqual(
|
||||||
|
'None is only supported in the 1st dimension. Tensor '
|
||||||
|
'\'in_tensor\' has invalid shape \'[1, None, 16, 3]\'.',
|
||||||
|
str(error.exception))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
test.main()
|
test.main()
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
path: "tensorflow.lite.TFLiteConverter"
|
path: "tensorflow.lite.TFLiteConverter"
|
||||||
tf_class {
|
tf_class {
|
||||||
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverter\'>"
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverter\'>"
|
||||||
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteFrozenGraphConverter\'>"
|
||||||
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterBaseV1\'>"
|
||||||
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterBase\'>"
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterBase\'>"
|
||||||
is_instance: "<type \'object\'>"
|
is_instance: "<type \'object\'>"
|
||||||
member_method {
|
member_method {
|
||||||
name: "__init__"
|
name: "__init__"
|
||||||
argspec: "args=[\'self\', \'graph_def\', \'input_tensors\', \'output_tensors\', \'input_arrays_with_shape\', \'output_arrays\', \'experimental_debug_info_func\', \'saved_model_dir\', \'saved_model_tags\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\', \'None\'], "
|
argspec: "args=[\'self\', \'graph_def\', \'input_tensors\', \'output_tensors\', \'input_arrays_with_shape\', \'output_arrays\', \'experimental_debug_info_func\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "convert"
|
name: "convert"
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
path: "tensorflow.lite.TFLiteConverter"
|
path: "tensorflow.lite.TFLiteConverter"
|
||||||
tf_class {
|
tf_class {
|
||||||
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterV2\'>"
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterV2\'>"
|
||||||
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteFrozenGraphConverterV2\'>"
|
||||||
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterBaseV2\'>"
|
||||||
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterBase\'>"
|
is_instance: "<class \'tensorflow.lite.python.lite.TFLiteConverterBase\'>"
|
||||||
is_instance: "<type \'object\'>"
|
is_instance: "<type \'object\'>"
|
||||||
member_method {
|
member_method {
|
||||||
name: "__init__"
|
name: "__init__"
|
||||||
argspec: "args=[\'self\', \'funcs\', \'trackable_obj\', \'saved_model_dir\', \'saved_model_tags\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\'], "
|
argspec: "args=[\'self\', \'funcs\', \'trackable_obj\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "convert"
|
name: "convert"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user