Exemplo n.º 1
0
def run_node(onnx_node, data_inputs, **kwargs):
    # type: (onnx.NodeProto, List[np.ndarray], Dict[Text, Any]) -> List[np.ndarray]
    """
    Convert ONNX node to ngraph node and perform computation on input data.

    :param onnx_node: ONNX NodeProto describing a computation node
    :param data_inputs: list of numpy ndarrays with input data
    :return: list of numpy ndarrays with computed output
    """
    NgraphBackend.backend_name = pytest.config.getoption('backend',
                                                         default='CPU')
    if NgraphBackend.supports_ngraph_device(NgraphBackend.backend_name):
        return NgraphBackend.run_node(onnx_node, data_inputs, **kwargs)
    else:
        raise RuntimeError('The requested nGraph backend <' +
                           NgraphBackend.backend_name + '> is not supported!')
Exemplo n.º 2
0
def test_run_model(_get_data_shapes):
    a_shape, b_shape, c_shape, d_shape, out_shape = _get_data_shapes
    input_a, input_b, input_c, input_d = _get_input_data(a_shape, b_shape, c_shape, d_shape)

    model = _get_simple_model(a_shape, b_shape, c_shape, d_shape, out_shape)

    ng_results = NgraphBackend.run_model(model, [input_a, input_b, input_c, input_d])
    expected = np.dot(np.abs(input_a + input_b), input_c) + input_d

    assert np.allclose(ng_results, [expected])
Exemplo n.º 3
0
def test_prepare(_get_data_shapes):
    a_shape, b_shape, c_shape, d_shape, out_shape = _get_data_shapes
    model = _get_simple_model(a_shape, b_shape, c_shape, d_shape, out_shape)
    backend = NgraphBackend.prepare(model)

    for idx in range(10):
        input_a, input_b, input_c, input_d = _get_input_data(a_shape, b_shape, c_shape, d_shape)
        ng_results = backend.run([input_a, input_b, input_c, input_d])
        expected = np.dot(np.abs(input_a + input_b), input_c) + input_d
        assert np.allclose(ng_results, [expected])
Exemplo n.º 4
0
def run_model(onnx_model, data_inputs):
    # type: (onnx.ModelProto, List[np.ndarray]) -> List[np.ndarray]
    """
    Convert ONNX model to an ngraph model and perform computation on input data.

    :param onnx_model: ONNX ModelProto describing an ONNX model
    :param data_inputs: list of numpy ndarrays with input data
    :return: list of numpy ndarrays with computed output
    """
    NgraphBackend.backend_name = pytest.config.getoption('backend',
                                                         default='CPU')
    if NgraphBackend.supports_ngraph_device(NgraphBackend.backend_name):
        ng_model_function = import_onnx_model(onnx_model)
        runtime = get_runtime()
        computation = runtime.computation(ng_model_function)
        return computation(*data_inputs)
    else:
        raise RuntimeError('The requested nGraph backend <' +
                           NgraphBackend.backend_name + '> is not supported!')
Exemplo n.º 5
0
def test_supports_device_gpu():
    assert NgraphBackend.supports_device('CUDA')
Exemplo n.º 6
0
def test_supports_ngraph_device_gpu():
    assert NgraphBackend.supports_ngraph_device('GPU')
Exemplo n.º 7
0
def test_supports_ngraph_device_nnp():
    assert NgraphBackend.supports_ngraph_device('NNP')
Exemplo n.º 8
0
def test_supports_ngraph_device_interpreter():
    assert NgraphBackend.supports_ngraph_device('INTERPRETER')
Exemplo n.º 9
0
def test_run_node():
    input_data = _get_input_data([2, 3, 4, 5])
    node = onnx.helper.make_node('Abs', inputs=['x'], outputs=['y'])
    ng_results = NgraphBackend.run_node(node, input_data)
    expected = np.abs(input_data)
    assert np.array_equal(ng_results, expected)