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())
|
||||
|
||||
|
||||
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__':
|
||||
test.main()
|
||||
|
@ -981,6 +981,27 @@ class UnknownShapes(lite_v2_test_util.ModelTest):
|
||||
np.testing.assert_almost_equal(
|
||||
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__':
|
||||
test.main()
|
||||
|
@ -1,11 +1,13 @@
|
||||
path: "tensorflow.lite.TFLiteConverter"
|
||||
tf_class {
|
||||
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: "<type \'object\'>"
|
||||
member_method {
|
||||
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 {
|
||||
name: "convert"
|
||||
|
@ -1,11 +1,13 @@
|
||||
path: "tensorflow.lite.TFLiteConverter"
|
||||
tf_class {
|
||||
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: "<type \'object\'>"
|
||||
member_method {
|
||||
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 {
|
||||
name: "convert"
|
||||
|
Loading…
Reference in New Issue
Block a user