def test_auto_image_nhwc_input_names(self): x_shape = (4, 5, 3) @make_tf_graph([x_shape]) def build_model(x): return tf.nn.relu(x) model, inputs, outputs = build_model mlmodel = converter.convert(model, inputs=[ImageType()]) assert mlmodel is not None
def test_auto_image_nchw_input_names(self): x_shape = (3, 4, 5) @make_tf_graph([x_shape]) def build_model(x): return tf.nn.relu(x) model, inputs, outputs = build_model mlmodel = converter.convert(model, inputs=[ImageType(channel_first=True)]) assert mlmodel is not None
def test_auto_image_nhwc_input_names(): x_shape = (4, 5, 3) @make_tf_graph([x_shape]) def build_model(x): return tf.nn.relu(x) model, inputs, outputs = build_model mlmodel = converter.convert(model, inputs=[ImageType()]) if mlmodel is None: raise AssertionError
def test_fusion_with_image_full(self): @mb.program(input_specs=[mb.TensorSpec(shape=(10, 20, 30, 3))]) def prog(x): x1 = mb.transpose(x=x, perm=[0, 3, 1, 2]) x2 = mb.relu(x=x) x3 = mb.transpose(x=x2, perm=[0, 3, 1, 2]) x4 = mb.add(x=x1, y=x3) return mb.relu(x=x4) proto = converter._convert(prog, inputs=[ImageType(name="x", shape=(10, 20, 30, 3), channel_first=False)], convert_from="mil", convert_to="nn_proto") model = models.MLModel(proto) assert model is not None assert len(model._spec.neuralNetwork.layers) == 3
def test_fusion_with_image_intermediate_graph(self): @mb.program(input_specs=[mb.TensorSpec(shape=(10, 20, 30, 3))]) def prog(x): x1 = mb.transpose(x=x, perm=[0, 3, 1, 2]) x2 = mb.relu(x=x) x3 = mb.transpose(x=x2, perm=[0, 3, 1, 2]) x4 = mb.add(x=x1, y=x3) return mb.relu(x=x4) prog.main_input_types = [ImageType(name="x", shape=(10, 20, 30, 3), channel_first=False)] prev_prog, prev_block, block = apply_pass_and_basic_check( prog, "common::image_input_preprocess" ) self.assertEqual(get_op_types_in_program(prev_prog), ["transpose", "relu", "transpose", "add", "relu"]) self.assertEqual(get_op_types_in_program(prog), ["transpose", "transpose", "relu", "transpose", "add", "relu"])
def test_fusion_with_image_full(self): from coremltools.converters._converters_entry import convert @mb.program(input_specs=[mb.TensorSpec(shape=(10, 20, 30, 3))]) def prog(x): x1 = mb.transpose(x=x, perm=[0, 3, 1, 2]) x2 = mb.relu(x=x) x3 = mb.transpose(x=x2, perm=[0, 3, 1, 2]) x4 = mb.add(x=x1, y=x3) return mb.relu(x=x4) mlmodel = convert(prog, inputs=[ ImageType(name="x", shape=(10, 20, 30, 3), channel_first=False) ], source="mil", convert_to="nn_proto") assert mlmodel is not None assert len(mlmodel.get_spec().neuralNetwork.layers) == 3
def test_fusion_with_image_full(): @mb.program(input_specs=[mb.TensorSpec(shape=(10, 20, 30, 3))]) def prog(x): x1 = mb.transpose(x=x, perm=[0, 3, 1, 2]) x2 = mb.relu(x=x) x3 = mb.transpose(x=x2, perm=[0, 3, 1, 2]) x4 = mb.add(x=x1, y=x3) return mb.relu(x=x4) mlmodel = ct.convert(prog, inputs=[ ImageType(name="x", shape=(10, 20, 30, 3), channel_first=False) ], source="mil", convert_to="nn_proto") if mlmodel is None: raise AssertionError if len(mlmodel.get_spec().neuralNetwork.layers) != 3: raise AssertionError