Ejemplo n.º 1
0
    def test_simple_loop_fixed_iterations(self):
        input_features = [("data", datatypes.Array(1))]
        output_features = [("output", None)]

        builder_top = NeuralNetworkBuilder(
            input_features, output_features, disable_rank5_shape_mapping=True
        )
        builder_top.add_copy("copy_1", input_name="data", output_name="output")

        loop_layer = builder_top.add_loop("loop_layer")
        loop_layer.loop.maxLoopIterations = 5
        builder_body = NeuralNetworkBuilder(
            input_features=None,
            output_features=None,
            spec=None,
            nn_spec=loop_layer.loop.bodyNetwork,
        )
        builder_body.add_elementwise(
            "add", input_names=["output"], output_name="x", mode="ADD", alpha=2
        )

        builder_body.add_copy("copy_2", input_name="x", output_name="output")
        coremltools.models.utils.save_spec(
            builder_top.spec, "/tmp/simple_loop_fixed_iterations.mlmodel"
        )
        mlmodel = MLModel(builder_top.spec)

        # True branch case
        input_dict = {"data": np.array([0], dtype="float")}
        output_ref = {"output": np.array([10], dtype="float")}
        self._test_model(mlmodel, input_dict, output_ref)
Ejemplo n.º 2
0
    def test_simple_loop_fixed_iterations(self):
        input_features = [('data', datatypes.Array(1))]
        output_features = [('output', None)]

        builder_top = NeuralNetworkBuilder(input_features,
                                           output_features,
                                           disable_rank5_shape_mapping=True)
        builder_top.add_copy('copy_1', input_name='data', output_name='output')

        loop_layer = builder_top.add_loop('loop_layer')
        loop_layer.loop.maxLoopIterations = 5
        builder_body = NeuralNetworkBuilder(
            input_features=None,
            output_features=None,
            spec=None,
            nn_spec=loop_layer.loop.bodyNetwork)
        builder_body.add_elementwise('add',
                                     input_names=['output'],
                                     output_name='x',
                                     mode='ADD',
                                     alpha=2)

        builder_body.add_copy('copy_2', input_name='x', output_name='output')
        coremltools.models.utils.save_spec(
            builder_top.spec, '/tmp/simple_loop_fixed_iterations.mlmodel')
        mlmodel = MLModel(builder_top.spec)

        # True branch case
        input_dict = {'data': np.array([0], dtype='float')}
        output_ref = {'output': np.array([10], dtype='float')}
        self._test_model(mlmodel, input_dict, output_ref)