def test_reshape_converter(self):
     input_dim = (1, 1, 2)
     output_dim = (1, 2, 1)
     inputs = [('input', datatypes.Array(*input_dim))]
     outputs = [('output', datatypes.Array(*output_dim))]
     builder = NeuralNetworkBuilder(inputs, outputs)
     builder.add_reshape(name='Reshape', input_name='input', output_name='output', target_shape=output_dim, mode=1)
     model_onnx = convert_coreml(builder.spec)
     self.assertTrue(model_onnx is not None)
 def test_reshape_converter(self):
     input_dim = (1, 1, 2)
     output_dim = (1, 2, 1)
     inputs = [('input', datatypes.Array(*input_dim))]
     outputs = [('output', datatypes.Array(*output_dim))]
     builder = NeuralNetworkBuilder(inputs, outputs)
     builder.add_reshape(name='Reshape',
                         input_name='input',
                         output_name='output',
                         target_shape=output_dim,
                         mode=1)
     context = ConvertContext()
     node = ReshapeLayerConverter.convert(
         context, builder.spec.neuralNetwork.layers[0], ['input'],
         ['output'])
     self.assertTrue(node is not None)
예제 #3
0
def verify_reshape(input_dim, target_shape, mode):
    dtype = 'float32'

    a_np = np.random.uniform(-100.0, 100.0, size=input_dim).astype(dtype)
    ref_val = np.reshape(a_np, target_shape)

    inputs = [('input', datatypes.Array(*input_dim))]
    output = [('output', datatypes.Array(*ref_val.shape))]
    builder = NeuralNetworkBuilder(inputs, output)
    builder.add_reshape(name="reshape",
                       input_name='input',
                       output_name='output',
                       target_shape=target_shape,
                       mode=mode)

    model = cm.models.MLModel(builder.spec)
    for target, ctx in tvm.testing.enabled_targets():
        out = run_tvm_graph(model, target, ctx, [a_np],
                            ['input'], ref_val.shape, dtype)
        tvm.testing.assert_allclose(out, ref_val, rtol=1e-5)