Commit 9bff4331 authored by Paul's avatar Paul
Browse files

Merge

parents 214b313f 94a7f6ee
No preview for this file type
#####################################################################################
# The MIT License (MIT)
#
# Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
# Copyright (c) 2015-2023 Advanced Micro Devices, Inc. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
......@@ -23,33 +23,42 @@
#####################################################################################
# This script generates onnx files for MIGraphX onnx operator tests.
# To generate an individual onnx file, you can use the following
# command: python -c "import gen_onnx; gen_onnx.{test_name}_test()"
# command: python3 -c "import gen_onnx; gen_onnx.{test_name}_test()"
import numpy as np
import onnx
from onnx import helper
from onnx import TensorProto
def onnx_test(op_test):
def run_test():
op_info = op_test()
if len(op_info) > 3:
graph_def = helper.make_graph(op_info[0],
op_test.__name__,
op_info[1],
op_info[2],
initializer=op_info[3])
else:
graph_def = helper.make_graph(op_info[0], op_test.__name__,
op_info[1], op_info[2])
model_def = helper.make_model(graph_def,
producer_name=op_test.__name__)
onnx.save(model_def, '{}.onnx'.format(op_test.__name__))
return run_test
@onnx_test
from onnx.numpy_helper import from_array
def onnx_test(external_data=False):
def create_onnx_test(op_test):
def run_test():
op_info = op_test()
if len(op_info) > 3:
graph_def = helper.make_graph(op_info[0],
op_test.__name__,
op_info[1],
op_info[2],
initializer=op_info[3])
else:
graph_def = helper.make_graph(op_info[0], op_test.__name__,
op_info[1], op_info[2])
model_def = helper.make_model(graph_def,
producer_name=op_test.__name__)
onnx.save_model(model_def,
'{}.onnx'.format(op_test.__name__),
save_as_external_data=external_data,
location='{}.weight'.format(op_test.__name__),
size_threshold=0,
convert_attribute=True)
return run_test
return create_onnx_test
@onnx_test()
def acos_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -63,7 +72,7 @@ def acos_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def acosh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -77,7 +86,7 @@ def acosh_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def add_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
......@@ -92,7 +101,7 @@ def add_bcast_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def add_fp16_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1])
......@@ -115,7 +124,7 @@ def add_fp16_test():
])
@onnx_test
@onnx_test()
def add_scalar_test():
x = helper.make_tensor_value_info('0', TensorProto.UINT8, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.UINT8, [])
......@@ -126,7 +135,7 @@ def add_scalar_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def argmax_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
......@@ -140,7 +149,21 @@ def argmax_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def argmax_dyn_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 4, 6])
node = onnx.helper.make_node('ArgMax',
inputs=['x'],
outputs=['y'],
axis=2,
keepdims=0)
return ([node], [x], [y])
@onnx_test()
def argmin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 5])
......@@ -154,7 +177,7 @@ def argmin_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def asin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -168,7 +191,7 @@ def asin_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def asinh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -182,7 +205,7 @@ def asinh_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def atan_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -196,7 +219,7 @@ def atan_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def atanh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -210,7 +233,7 @@ def atanh_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_1d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5])
out = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3])
......@@ -223,7 +246,7 @@ def averagepool_1d_test():
return ([node], [x], [out])
@onnx_test
@onnx_test()
def averagepool_3d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5, 5])
out = helper.make_tensor_value_info('1', TensorProto.FLOAT,
......@@ -237,7 +260,7 @@ def averagepool_3d_test():
return ([node], [x], [out])
@onnx_test
@onnx_test()
def averagepool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 5, 5, 5])
......@@ -252,7 +275,7 @@ def averagepool_dyn_test():
return ([node], [x], [out])
@onnx_test
@onnx_test()
def averagepool_dyn_autopad_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 1, 5, 5])
......@@ -266,7 +289,7 @@ def averagepool_dyn_autopad_error_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_dyn_asym_padding_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 1, 3, 3])
......@@ -281,7 +304,7 @@ def averagepool_dyn_asym_padding_error_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_dyn_cip_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 1, 1, 1])
......@@ -295,7 +318,7 @@ def averagepool_dyn_cip_error_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_notset_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 1, 1])
......@@ -311,7 +334,7 @@ def averagepool_notset_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_nt_cip_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 1, 1])
......@@ -328,7 +351,7 @@ def averagepool_nt_cip_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_same_lower_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
......@@ -342,7 +365,7 @@ def averagepool_same_lower_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_sl_cip_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
......@@ -357,7 +380,7 @@ def averagepool_sl_cip_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def averagepool_same_upper_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
......@@ -371,7 +394,7 @@ def averagepool_same_upper_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def batch_norm_flat_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [1])
......@@ -389,7 +412,7 @@ def batch_norm_flat_test():
return ([node], [x, scale, bias, mean, var], [out])
@onnx_test
@onnx_test()
def batch_norm_rank_2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [5])
......@@ -407,7 +430,7 @@ def batch_norm_rank_2_test():
return ([node], [x, scale, bias, mean, var], [out])
@onnx_test
@onnx_test()
def batch_norm_1d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [2, 3, 4])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3])
......@@ -424,7 +447,7 @@ def batch_norm_1d_test():
return ([node], [x, scale, bias, mean, var], [out])
@onnx_test
@onnx_test()
def batch_norm_2d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4, 4])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3])
......@@ -441,7 +464,7 @@ def batch_norm_2d_test():
return ([node], [x, scale, bias, mean, var], [out])
@onnx_test
@onnx_test()
def batch_norm_3d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16,
[2, 2, 2, 2, 2])
......@@ -461,7 +484,7 @@ def batch_norm_3d_test():
return ([node], [x, scale, bias, mean, var], [out])
@onnx_test
@onnx_test()
def batch_norm_invalid_bias_rank_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4, 4])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3])
......@@ -478,7 +501,7 @@ def batch_norm_invalid_bias_rank_test():
return ([node], [x, scale, bias, mean, var], [out])
@onnx_test
@onnx_test()
def binary_dyn_brcst_prelu_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 4, 5])
......@@ -495,7 +518,7 @@ def binary_dyn_brcst_prelu_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def binary_dyn_brcst_add_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT,
......@@ -512,7 +535,7 @@ def binary_dyn_brcst_add_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def binary_dyn_brcst_attr_error_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT,
......@@ -529,7 +552,7 @@ def binary_dyn_brcst_attr_error_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def binary_dyn_brcst_mul_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 4, 5])
......@@ -546,7 +569,7 @@ def binary_dyn_brcst_mul_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def cast_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -556,7 +579,7 @@ def cast_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def ceil_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -570,7 +593,7 @@ def ceil_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def celu_alpha_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3])
......@@ -583,7 +606,7 @@ def celu_alpha_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def celu_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
......@@ -593,7 +616,7 @@ def celu_default_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def celu_verify_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
......@@ -606,7 +629,7 @@ def celu_verify_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def celu_wrong_type_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [2, 3])
......@@ -616,7 +639,7 @@ def celu_wrong_type_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def celu_zero_alpha_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
......@@ -629,7 +652,7 @@ def celu_zero_alpha_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def clip_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -643,7 +666,7 @@ def clip_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def clip_test_op11():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -658,7 +681,7 @@ def clip_test_op11():
return ([node], [x], [y], [min_val, max_val])
@onnx_test
@onnx_test()
def clip_test_op11_max_only():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -672,7 +695,7 @@ def clip_test_op11_max_only():
return ([node], [x], [y], [max_val])
@onnx_test
@onnx_test()
def clip_test_op11_min_only():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -684,7 +707,7 @@ def clip_test_op11_min_only():
return ([node], [x], [y], [min_val])
@onnx_test
@onnx_test()
def clip_test_op11_no_args():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -694,7 +717,7 @@ def clip_test_op11_no_args():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def clip_test_op11_no_args1():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -704,7 +727,7 @@ def clip_test_op11_no_args1():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def clip_test_args_type_mismatch():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 3])
......@@ -720,7 +743,7 @@ def clip_test_args_type_mismatch():
return ([node], [x], [y], [min_val, max_val])
@onnx_test
@onnx_test()
def concat_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 4, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7, 4, 3])
......@@ -736,7 +759,23 @@ def concat_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def concat_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None, 3])
z = helper.make_tensor_value_info('2', TensorProto.FLOAT, [None, None, 3])
node = onnx.helper.make_node(
'Concat',
inputs=['0', '1'],
axis=0,
outputs=['2'],
)
return ([node], [x, y], [z])
@onnx_test()
def constant_test():
x = np.array([0, 1, 2])
y = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
......@@ -756,7 +795,7 @@ def constant_test():
return ([node], [], [y])
@onnx_test
@onnx_test()
def constant_fill_test():
value = helper.make_tensor_value_info('value', TensorProto.FLOAT, [2, 3])
......@@ -773,7 +812,7 @@ def constant_fill_test():
return ([node], [], [value])
@onnx_test
@onnx_test()
def constant_fill_input_as_shape_test():
np_shape = np.array([2, 3])
value = helper.make_tensor_value_info('value', TensorProto.FLOAT, [2, 3])
......@@ -802,7 +841,7 @@ def constant_fill_input_as_shape_test():
return ([const_shape_node, node], [], [value])
@onnx_test
@onnx_test()
def constant_scalar_test():
x = np.array([1])
y = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1])
......@@ -822,7 +861,7 @@ def constant_scalar_test():
return ([node], [], [y])
@onnx_test
@onnx_test()
def constant_empty_scalar_int64_test():
x = np.array([]).astype(np.int64)
y = helper.make_tensor_value_info('0', TensorProto.INT64, [0])
......@@ -842,7 +881,7 @@ def constant_empty_scalar_int64_test():
return ([node], [], [y])
@onnx_test
@onnx_test()
def constant_one_val_int64_test():
x = np.array([1]).astype(np.int64)
y = helper.make_tensor_value_info('0', TensorProto.INT64, [0])
......@@ -862,7 +901,7 @@ def constant_one_val_int64_test():
return ([node], [], [y])
@onnx_test
@onnx_test()
def const_of_shape_empty_input_test():
tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.INT64, [1],
[10])
......@@ -889,7 +928,7 @@ def const_of_shape_empty_input_test():
return ([shape_const, node], [], [y])
@onnx_test
@onnx_test()
def const_of_shape_float_test():
tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.FLOAT, [1],
[10])
......@@ -916,7 +955,7 @@ def const_of_shape_float_test():
return ([shape_const, node], [], [y])
@onnx_test
@onnx_test()
def const_of_shape_int64_test():
tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.INT64, [1],
[10])
......@@ -941,7 +980,7 @@ def const_of_shape_int64_test():
return ([shape_const, node], [], [y])
@onnx_test
@onnx_test()
def const_of_shape_no_value_attr_test():
shape_val = np.array([2, 3, 4]).astype(np.int64)
shape_ts = helper.make_tensor(name='shape_tensor',
......@@ -965,7 +1004,7 @@ def const_of_shape_no_value_attr_test():
return ([shape_const, node], [], [y])
@onnx_test
@onnx_test()
def conv_1d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3])
......@@ -976,7 +1015,7 @@ def conv_1d_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_3d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3, 3])
......@@ -988,7 +1027,7 @@ def conv_3d_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_attr_fail_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3])
......@@ -1002,7 +1041,7 @@ def conv_attr_fail_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_autopad_fail_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
......@@ -1019,7 +1058,7 @@ def conv_autopad_fail_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_autopad_same_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3])
......@@ -1035,7 +1074,7 @@ def conv_autopad_same_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_bias_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 5, 5])
......@@ -1051,7 +1090,7 @@ def conv_bias_test():
return ([node], [x, y, z], [out])
@onnx_test
@onnx_test()
def conv_bn_relu_maxpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 5, 5])
......@@ -1087,7 +1126,7 @@ def conv_bn_relu_maxpool_test():
return ([node0, node1, node2, node3], [x, y, z, m, n, k, l], [out])
@onnx_test
@onnx_test()
def conv_dynamic_batch_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3])
......@@ -1098,7 +1137,25 @@ def conv_dynamic_batch_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_dynamic_bias_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 5, 5])
z = helper.make_tensor_value_info('2', TensorProto.FLOAT, [1])
out = helper.make_tensor_value_info('3', TensorProto.FLOAT,
[None, 2, 28, 28])
node = onnx.helper.make_node('Conv',
inputs=['0', '1', '2'],
outputs=['3'],
dilations=[1, 1],
strides=[1, 1])
return ([node], [x, y, z], [out])
@onnx_test()
def conv_dynamic_img_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None])
......@@ -1110,7 +1167,7 @@ def conv_dynamic_img_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_dynamic_weights_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT,
......@@ -1122,7 +1179,7 @@ def conv_dynamic_weights_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_dynamic_img_and_weights_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None])
......@@ -1135,7 +1192,7 @@ def conv_dynamic_img_and_weights_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_dynamic_batch_same_upper_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3])
......@@ -1148,7 +1205,7 @@ def conv_dynamic_batch_same_upper_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_dynamic_img_same_upper_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None])
......@@ -1163,7 +1220,7 @@ def conv_dynamic_img_same_upper_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_dynamic_kernel_same_lower_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT,
......@@ -1177,7 +1234,7 @@ def conv_dynamic_kernel_same_lower_test():
return ([node], [x, y], [out])
@onnx_test
@onnx_test()
def conv_relu_maxpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 5, 5])
......@@ -1203,7 +1260,7 @@ def conv_relu_maxpool_test():
return ([node1, node2, node3], [x, y, z], [out])
@onnx_test
@onnx_test()
def conv_relu_maxpool_x2_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [5, 3, 5, 5])
......@@ -1247,7 +1304,7 @@ def conv_relu_maxpool_x2_test():
return ([node1, node2, node3, node4, node5, node6], [x, y, z, m, n], [out])
@onnx_test
@onnx_test()
def convinteger_bias_test():
x = helper.make_tensor_value_info('0', TensorProto.INT8, [1, 3, 32, 32])
y = helper.make_tensor_value_info('1', TensorProto.INT8, [1, 3, 5, 5])
......@@ -1263,7 +1320,7 @@ def convinteger_bias_test():
return ([node], [x, y, z], [out])
@onnx_test
@onnx_test()
def cos_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -1277,7 +1334,7 @@ def cos_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def cosh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1])
......@@ -1291,7 +1348,7 @@ def cosh_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def deconv_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 1, 3, 3])
......@@ -1305,7 +1362,7 @@ def deconv_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_bias_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 1, 3, 3])
......@@ -1320,7 +1377,7 @@ def deconv_bias_test():
return ([node], [x, w, b], [y])
@onnx_test
@onnx_test()
def deconv_input_pads_strides_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
......@@ -1335,7 +1392,7 @@ def deconv_input_pads_strides_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_input_pads_asymm_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
......@@ -1350,7 +1407,7 @@ def deconv_input_pads_asymm_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_input_pads_asymm_1d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3])
......@@ -1366,7 +1423,7 @@ def deconv_input_pads_asymm_1d_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_output_padding_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
......@@ -1381,7 +1438,7 @@ def deconv_output_padding_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_output_padding_3d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3, 3])
......@@ -1396,7 +1453,7 @@ def deconv_output_padding_3d_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_output_shape_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
......@@ -1411,7 +1468,7 @@ def deconv_output_shape_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_output_shape_3d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3, 3])
......@@ -1426,7 +1483,7 @@ def deconv_output_shape_3d_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def deconv_stride_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
......@@ -1440,7 +1497,7 @@ def deconv_stride_test():
return ([node], [x, w], [y])
@onnx_test
@onnx_test()
def depthtospace_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 8, 5, 5])
......@@ -1455,7 +1512,7 @@ def depthtospace_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def depthtospace_simple_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 8, 2, 3])
......@@ -1470,7 +1527,7 @@ def depthtospace_simple_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def depthtospace_crd_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 8, 5, 5])
......@@ -1485,7 +1542,7 @@ def depthtospace_crd_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def spacetodepth_test():
x = helper.make_tensor_value_info('x', TensorProto.float, [2, 2, 10, 10])
......@@ -1499,7 +1556,7 @@ def spacetodepth_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def spacetodepth_simple_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 4, 6])
......@@ -1513,7 +1570,7 @@ def spacetodepth_simple_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def spacetodepth_invalid_blocksize_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 4, 6])
......@@ -1527,7 +1584,7 @@ def spacetodepth_invalid_blocksize_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def spacetodepth_nondivisibility_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 5, 5])
......@@ -1541,7 +1598,7 @@ def spacetodepth_nondivisibility_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def dequantizelinear_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT8, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
......@@ -1556,7 +1613,7 @@ def dequantizelinear_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def dequantizelinear_zero_point_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT8, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
......@@ -1587,17 +1644,17 @@ def make_dequantizelinear_axis_graph(axis):
return ([node], [arg0, arg1, arg2], [arg_out])
@onnx_test
@onnx_test()
def dequantizelinear_axis_test():
return make_dequantizelinear_axis_graph(2)
@onnx_test
@onnx_test()
def dequantizelinear_neg_axis_test():
return make_dequantizelinear_axis_graph(-2)
@onnx_test
@onnx_test()
def dropout_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 2, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 2, 2])
......@@ -1611,7 +1668,7 @@ def dropout_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def elu_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -1624,7 +1681,7 @@ def elu_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def embedding_bag_test():
index_val = np.array([1, 0, 2])
......@@ -1677,7 +1734,7 @@ def embedding_bag_test():
return ([index, offset, node1, node2, node3], [weight], [y1, y2, y3])
@onnx_test
@onnx_test()
def embedding_bag_offset_test():
index_val = np.array([1, 0])
......@@ -1716,7 +1773,7 @@ def embedding_bag_offset_test():
return ([index, offset, node], [weight], [y])
@onnx_test
@onnx_test()
def equal_test():
ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
x1 = helper.make_tensor("x1",
......@@ -1736,7 +1793,7 @@ def equal_test():
return ([node], [x2], [y], [x1])
@onnx_test
@onnx_test()
def equal_bool_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3])
......@@ -1754,7 +1811,7 @@ def equal_bool_test():
return ([node1, node2], [x1, x2], [y])
@onnx_test
@onnx_test()
def erf_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10, 15])
......@@ -1768,7 +1825,7 @@ def erf_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def exp_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -1782,7 +1839,7 @@ def exp_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def expand_test():
shape_val = np.array([2, 3, 4, 5]).astype(np.int64)
shape_ts = helper.make_tensor(name='shape_tensor',
......@@ -1805,7 +1862,23 @@ def expand_test():
return ([shape_const, node], [x], [y])
@onnx_test
@onnx_test(True)
def external_constant_test():
x = np.array([0, 1, 2])
y = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
tensor = from_array(x)
tensor.name = 'const_tensor'
node = onnx.helper.make_node('Constant',
inputs=[],
outputs=['0'],
value=tensor)
return ([node], [], [y])
@onnx_test()
def eyelike_default_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
......@@ -1818,7 +1891,7 @@ def eyelike_default_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_double_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.DOUBLE, [6, 15])
T2 = helper.make_tensor_value_info('T2', TensorProto.DOUBLE, [6, 15])
......@@ -1831,7 +1904,7 @@ def eyelike_double_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_half_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT16, [8, 8])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT16, [8, 8])
......@@ -1844,7 +1917,7 @@ def eyelike_half_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_k_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
......@@ -1852,7 +1925,7 @@ def eyelike_k_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_k_outofbounds_neg_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [2, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [2, 4])
......@@ -1863,7 +1936,7 @@ def eyelike_k_outofbounds_neg_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_k_outofbounds_pos_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
......@@ -1871,7 +1944,7 @@ def eyelike_k_outofbounds_pos_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_not_rank2_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4, 2])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
......@@ -1883,7 +1956,7 @@ def eyelike_not_rank2_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_verify_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
......@@ -1891,7 +1964,7 @@ def eyelike_verify_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_verify_negk_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
......@@ -1902,7 +1975,7 @@ def eyelike_verify_negk_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def eyelike_set_dtype_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.DOUBLE, [3, 4])
......@@ -1913,7 +1986,7 @@ def eyelike_set_dtype_test():
return ([node], [T1], [T2])
@onnx_test
@onnx_test()
def flatten_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [6, 20])
......@@ -1929,7 +2002,7 @@ def flatten_test():
return ([node, node2], [x], [y, y2])
@onnx_test
@onnx_test()
def flatten_nonstd_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 5, 4])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [6, 20])
......@@ -1952,7 +2025,20 @@ def flatten_nonstd_test():
return ([trans, node, node2], [x], [y, y2])
@onnx_test
@onnx_test()
def flatten_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 4, 5])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [None, 20])
node = onnx.helper.make_node('Flatten',
inputs=['0'],
axis=2,
outputs=['2'])
return ([node], [x], [y])
@onnx_test()
def floor_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -1966,7 +2052,7 @@ def floor_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def gather_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32,
......@@ -1983,7 +2069,41 @@ def gather_test():
return ([node], [x, i], [y])
@onnx_test
@onnx_test()
def gather_scalar_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, [])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 5, 6])
node = onnx.helper.make_node(
'Gather',
inputs=['data', 'indices'],
outputs=['y'],
axis=1,
)
return ([node], [x, i], [y])
@onnx_test()
def gather_dyn_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT,
[None, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32,
[None, 3, 4, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3, 4, 5])
node = onnx.helper.make_node(
'Gather',
inputs=['data', 'indices'],
outputs=['y'],
axis=1,
)
return ([node], [x, i], [y])
@onnx_test()
def gather_elements_axis0_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, [2, 3])
......@@ -1999,7 +2119,7 @@ def gather_elements_axis0_test():
return ([node], [x, i], [y])
@onnx_test
@onnx_test()
def gather_elements_axis1_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, [2, 3])
......@@ -2015,7 +2135,7 @@ def gather_elements_axis1_test():
return ([node], [x, i], [y])
@onnx_test
@onnx_test()
def gathernd_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2])
i = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 2])
......@@ -2028,7 +2148,20 @@ def gathernd_test():
return ([node], [x, i], [y])
@onnx_test
@onnx_test()
def gathernd_dyn_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [None, 2])
i = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2])
node = onnx.helper.make_node('GatherND',
inputs=['data', 'indices'],
outputs=['y'])
return ([node], [x, i], [y])
@onnx_test()
def gathernd_batch_dims_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
i = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 1])
......@@ -2044,90 +2177,155 @@ def gathernd_batch_dims_test():
return ([node], [x, i], [y])
@onnx_test
@onnx_test()
def gemm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5, 7])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [11, 5])
z = helper.make_tensor_value_info('2', TensorProto.FLOAT, [])
a = helper.make_tensor_value_info('3', TensorProto.FLOAT, [7, 11])
A = helper.make_tensor_value_info('A', TensorProto.FLOAT, [8, 6])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT, [8, 7])
C = helper.make_tensor_value_info('C', TensorProto.FLOAT, [6, 7])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [6, 7])
node = onnx.helper.make_node('Gemm',
inputs=['0', '1', '2'],
outputs=['3'],
inputs=['A', 'B', 'C'],
outputs=['Y'],
alpha=0.5,
beta=0.8,
transA=1)
return ([node], [A, B, C], [Y])
@onnx_test()
def gemm_no_C_test():
A = helper.make_tensor_value_info('A', TensorProto.FLOAT, [5, 7])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT, [11, 5])
C = helper.make_tensor_value_info('C', TensorProto.FLOAT, [])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [7, 11])
node = onnx.helper.make_node('Gemm',
inputs=['A', 'B', 'C'],
outputs=['Y'],
alpha=2.0,
beta=2.0,
transA=1,
transB=1)
return ([node], [x, y, z], [a])
return ([node], [A, B, C], [Y])
@onnx_test
def gemm_ex_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 1, 8, 6])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [1, 1, 8, 7])
m3 = helper.make_tensor_value_info('3', TensorProto.FLOAT, [1, 1, 6, 7])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 6, 7])
@onnx_test()
def gemm_brcst_C_test():
A = helper.make_tensor_value_info('A', TensorProto.FLOAT, [5, 6])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT, [5, 7])
C = helper.make_tensor_value_info('C', TensorProto.FLOAT, [6, 1])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [6, 7])
node = onnx.helper.make_node('Gemm',
inputs=['1', '2', '3'],
outputs=['y'],
inputs=['A', 'B', 'C'],
outputs=['Y'],
alpha=0.5,
beta=0.8,
transA=1)
return ([node], [m1, m2, m3], [y])
return ([node], [A, B, C], [Y])
@onnx_test
def gemm_ex_brcst_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 1, 5, 6])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [1, 1, 5, 7])
m3 = helper.make_tensor_value_info('3', TensorProto.FLOAT, [1, 1, 6, 1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 6, 7])
@onnx_test()
def gemm_half_test():
A = helper.make_tensor_value_info('A', TensorProto.FLOAT16, [8, 6])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT16, [8, 7])
C = helper.make_tensor_value_info('C', TensorProto.FLOAT16, [6, 1])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT16, [6, 7])
node = onnx.helper.make_node('Gemm',
inputs=['1', '2', '3'],
outputs=['y'],
inputs=['A', 'B', 'C'],
outputs=['Y'],
alpha=0.5,
beta=0.8,
transA=1)
return ([node], [m1, m2, m3], [y])
return ([node], [A, B, C], [Y])
@onnx_test
def gemm_half_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1, 1, 8, 6])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT16, [1, 1, 8, 7])
m3 = helper.make_tensor_value_info('3', TensorProto.FLOAT16, [1, 1, 6, 1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [1, 1, 6, 7])
@onnx_test()
def gemm_dyn_inner_test():
A = helper.make_tensor_value_info('A', TensorProto.FLOAT, [None, 6])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT, [None, 7])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [6, 7])
node = onnx.helper.make_node('Gemm',
inputs=['1', '2', '3'],
outputs=['y'],
inputs=['A', 'B'],
outputs=['Y'],
alpha=0.5,
beta=0.8,
transA=1)
return ([node], [m1, m2, m3], [y])
@onnx_test
def globalavgpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
node = onnx.helper.make_node(
'GlobalAveragePool',
inputs=['0'],
outputs=['1'],
)
return ([node], [A, B], [Y])
return ([node], [x], [y])
@onnx_test()
def gemm_dyn_outer_test():
A = helper.make_tensor_value_info('A', TensorProto.FLOAT, [5, None])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT, [11, 5])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [None, 11])
@onnx_test
node = onnx.helper.make_node('Gemm',
inputs=['A', 'B'],
outputs=['Y'],
alpha=2.0,
transA=1,
transB=1)
return ([node], [A, B], [Y])
@onnx_test()
def gemm_dyn_bias_test():
A = helper.make_tensor_value_info('A', TensorProto.FLOAT, [8, None])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT, [8, 7])
C = helper.make_tensor_value_info('C', TensorProto.FLOAT, [1, 7])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [None, 7])
node = onnx.helper.make_node('Gemm',
inputs=['A', 'B', 'C'],
outputs=['Y'],
alpha=1.0,
beta=1.0,
transA=1)
return ([node], [A, B, C], [Y])
@onnx_test()
def gemm_rank_error():
A = helper.make_tensor_value_info('A', TensorProto.FLOAT, [4, 1, 8, 6])
B = helper.make_tensor_value_info('B', TensorProto.FLOAT, [4, 1, 8, 7])
C = helper.make_tensor_value_info('C', TensorProto.FLOAT, [6, 7])
Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [4, 1, 6, 7])
node = onnx.helper.make_node('Gemm',
inputs=['A', 'B', 'C'],
outputs=['Y'],
alpha=0.5,
beta=0.8,
transA=1)
return ([node], [A, B, C], [Y])
@onnx_test()
def globalavgpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
node = onnx.helper.make_node(
'GlobalAveragePool',
inputs=['0'],
outputs=['1'],
)
return ([node], [x], [y])
@onnx_test()
def globalavgpool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 16, 16])
......@@ -2142,7 +2340,7 @@ def globalavgpool_dyn_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def globallppool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
......@@ -2156,7 +2354,7 @@ def globallppool_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def globallppool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None])
......@@ -2171,7 +2369,7 @@ def globallppool_dyn_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def globalmaxpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
......@@ -2185,7 +2383,7 @@ def globalmaxpool_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def globalmaxpool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 32, 32])
......@@ -2200,7 +2398,7 @@ def globalmaxpool_dyn_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def greater_test():
ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
x1 = helper.make_tensor("x1",
......@@ -2220,7 +2418,7 @@ def greater_test():
return ([node], [x2], [y], [x1])
@onnx_test
@onnx_test()
def greater_bool_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3])
......@@ -2238,7 +2436,7 @@ def greater_bool_test():
return ([node1, node2], [x1, x2], [y])
@onnx_test
@onnx_test()
def greaterorequal_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [3])
......@@ -2254,7 +2452,7 @@ def greaterorequal_test():
return ([node], [x1, x2], [y])
@onnx_test
@onnx_test()
def group_conv_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 4, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 1, 3, 3])
......@@ -2270,7 +2468,7 @@ def group_conv_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def hardsigmoid_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 4, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 4, 5])
......@@ -2280,7 +2478,7 @@ def hardsigmoid_default_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def hardsigmoid_double_test():
x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [1, 3, 4, 5])
y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [1, 3, 4, 5])
......@@ -2294,7 +2492,7 @@ def hardsigmoid_double_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def hardsigmoid_half_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [1, 3, 4, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [1, 3, 4, 5])
......@@ -2304,7 +2502,7 @@ def hardsigmoid_half_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def hardsigmoid_verify_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 5])
......@@ -2314,7 +2512,7 @@ def hardsigmoid_verify_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def hardswish_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 5])
......@@ -2324,11 +2522,63 @@ def hardswish_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def if_else_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [2, 3])
y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [2, 3])
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
[2, 3])
else_out = onnx.helper.make_tensor_value_info('else_out',
onnx.TensorProto.FLOAT,
[2, 3])
xt = np.ones((2, 3)).astype(np.float)
xt_tensor = helper.make_tensor(name='xt',
data_type=TensorProto.FLOAT,
dims=xt.shape,
vals=xt.flatten().astype(np.float32))
yt = np.random.randn(2, 3).astype(np.float)
yt_tensor = helper.make_tensor(name='yt',
data_type=TensorProto.FLOAT,
dims=yt.shape,
vals=yt.flatten().astype(np.float32))
then_add_node = onnx.helper.make_node('Add',
inputs=['x', 'xt'],
outputs=['then_out'])
else_mul_node = onnx.helper.make_node('Mul',
inputs=['y', 'yt'],
outputs=['else_out'])
then_body = onnx.helper.make_graph([then_add_node], 'then_body', [],
[then_out])
else_body = onnx.helper.make_graph([else_mul_node], 'else_body', [],
[else_out])
cond_tensor = onnx.helper.make_tensor_value_info("cond",
onnx.TensorProto.BOOL,
[1])
res = onnx.helper.make_tensor_value_info('res', TensorProto.FLOAT, [])
node = onnx.helper.make_node('If',
inputs=['cond'],
outputs=['res'],
then_branch=then_body,
else_branch=else_body)
return ([node], [x, y, cond_tensor], [res], [xt_tensor, yt_tensor])
@onnx_test()
def if_else_test_inlined():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [2, 3])
y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [2, 3])
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
[2, 3])
......@@ -2378,7 +2628,150 @@ def if_else_test():
return ([node], [x, y], [res], [cond_tensor, xt_tensor, yt_tensor])
@onnx_test
@onnx_test()
def if_then_else_multi_output_shapes_inlined_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT,
[2, 3, 1])
y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [2, 3])
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
[2, 3, 1])
then_out2 = onnx.helper.make_tensor_value_info('then_out2',
onnx.TensorProto.FLOAT,
[2, 3, 1])
else_out = onnx.helper.make_tensor_value_info('else_out',
onnx.TensorProto.FLOAT,
[2, 3])
else_out2 = onnx.helper.make_tensor_value_info('else_out2',
onnx.TensorProto.FLOAT,
[2, 3])
xt = np.ones((2, 3, 1)).astype(np.float)
xt_tensor = helper.make_tensor(name='xt',
data_type=TensorProto.FLOAT,
dims=xt.shape,
vals=xt.flatten().astype(np.float32))
yt = np.random.randn(2, 3).astype(np.float)
yt_tensor = helper.make_tensor(name='yt',
data_type=TensorProto.FLOAT,
dims=yt.shape,
vals=yt.flatten().astype(np.float32))
then_add_node = onnx.helper.make_node('Add',
inputs=['x', 'xt'],
outputs=['then_out'])
then_add_node2 = onnx.helper.make_node('Add',
inputs=['x', 'x'],
outputs=['then_out2'])
else_mul_node = onnx.helper.make_node('Mul',
inputs=['y', 'yt'],
outputs=['else_out'])
else_sub_node = onnx.helper.make_node('Sub',
inputs=['y', 'yt'],
outputs=['else_out2'])
then_body = onnx.helper.make_graph([then_add_node, then_add_node2],
'then_body', [], [then_out, then_out2])
else_body = onnx.helper.make_graph([else_mul_node, else_sub_node],
'else_body', [], [else_out, else_out2])
cond = np.array([1]).astype(np.bool)
cond_tensor = helper.make_tensor(name="cond",
data_type=TensorProto.BOOL,
dims=cond.shape,
vals=cond.astype(bool))
res1 = onnx.helper.make_tensor_value_info('res1', TensorProto.FLOAT, [])
res2 = onnx.helper.make_tensor_value_info('res2', TensorProto.FLOAT, [])
node = onnx.helper.make_node('If',
inputs=['cond'],
outputs=['res1', 'res2'],
then_branch=then_body,
else_branch=else_body)
return ([node], [x, y], [res1, res2], [cond_tensor, xt_tensor, yt_tensor])
@onnx_test()
def if_then_else_multi_output_shapes_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT,
[2, 3, 1])
y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT,
[2, 3, 1])
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
[2, 3, 1])
then_out2 = onnx.helper.make_tensor_value_info('then_out2',
onnx.TensorProto.FLOAT,
[2, 3, 1])
else_out = onnx.helper.make_tensor_value_info('else_out',
onnx.TensorProto.FLOAT,
[2, 3, 1])
else_out2 = onnx.helper.make_tensor_value_info('else_out2',
onnx.TensorProto.FLOAT,
[2, 3, 1])
xt = np.ones((2, 3, 1)).astype(np.float)
xt_tensor = helper.make_tensor(name='xt',
data_type=TensorProto.FLOAT,
dims=xt.shape,
vals=xt.flatten().astype(np.float32))
yt = np.random.randn(2, 3, 1).astype(np.float)
yt_tensor = helper.make_tensor(name='yt',
data_type=TensorProto.FLOAT,
dims=yt.shape,
vals=yt.flatten().astype(np.float32))
then_add_node = onnx.helper.make_node('Add',
inputs=['x', 'xt'],
outputs=['then_out'])
then_add_node2 = onnx.helper.make_node('Add',
inputs=['x', 'x'],
outputs=['then_out2'])
else_mul_node = onnx.helper.make_node('Mul',
inputs=['y', 'yt'],
outputs=['else_out'])
else_sub_node = onnx.helper.make_node('Sub',
inputs=['y', 'yt'],
outputs=['else_out2'])
then_body = onnx.helper.make_graph([then_add_node, then_add_node2],
'then_body', [], [then_out, then_out2])
else_body = onnx.helper.make_graph([else_mul_node, else_sub_node],
'else_body', [], [else_out, else_out2])
cond_tensor = onnx.helper.make_tensor_value_info("cond",
onnx.TensorProto.BOOL,
[1])
res1 = onnx.helper.make_tensor_value_info('res1', TensorProto.FLOAT, [])
res2 = onnx.helper.make_tensor_value_info('res2', TensorProto.FLOAT, [])
node = onnx.helper.make_node('If',
inputs=['cond'],
outputs=['res1', 'res2'],
then_branch=then_body,
else_branch=else_body)
return ([node], [x, y, cond_tensor], [res1, res2], [xt_tensor, yt_tensor])
@onnx_test()
def if_literal_test():
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT, [5])
......@@ -2426,7 +2819,7 @@ def if_literal_test():
return ([node], [cond_input], [ret])
@onnx_test
@onnx_test()
def if_param_excp_test():
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
......@@ -2478,7 +2871,7 @@ def if_param_excp_test():
return ([node], [cond_input, x, y], [ret])
@onnx_test
@onnx_test()
def if_param_excp1_test():
then_out = onnx.helper.make_tensor_value_info('sub_out',
onnx.TensorProto.FLOAT,
......@@ -2513,7 +2906,7 @@ def if_param_excp1_test():
return ([node], [cond_input, x], [ret])
@onnx_test
@onnx_test()
def if_param_test():
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
......@@ -2565,7 +2958,7 @@ def if_param_test():
return ([node], [cond_input, x, y], [ret])
@onnx_test
@onnx_test()
def if_pl_test():
out_x = onnx.helper.make_tensor_value_info('out_x', onnx.TensorProto.FLOAT,
[2, 3])
......@@ -2633,11 +3026,64 @@ def if_pl_test():
return ([node], [cond_input, x, y], [ret], [xt_tensor, yt_tensor])
@onnx_test
@onnx_test()
def if_then_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [2, 3])
y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [2, 3])
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
[2, 3])
else_out = onnx.helper.make_tensor_value_info('else_out',
onnx.TensorProto.FLOAT,
[2, 3])
xt = np.ones((2, 3)).astype(np.float)
xt_tensor = helper.make_tensor(name='xt',
data_type=TensorProto.FLOAT,
dims=xt.shape,
vals=xt.flatten().astype(np.float32))
yt = np.random.randn(2, 3).astype(np.float)
yt_tensor = helper.make_tensor(name='yt',
data_type=TensorProto.FLOAT,
dims=yt.shape,
vals=yt.flatten().astype(np.float32))
then_add_node = onnx.helper.make_node('Add',
inputs=['x', 'xt'],
outputs=['then_out'])
else_mul_node = onnx.helper.make_node('Mul',
inputs=['y', 'yt'],
outputs=['else_out'])
then_body = onnx.helper.make_graph([then_add_node], 'then_body', [],
[then_out])
else_body = onnx.helper.make_graph([else_mul_node], 'else_body', [],
[else_out])
cond_tensor = onnx.helper.make_tensor_value_info("cond",
onnx.TensorProto.BOOL,
[1])
res = onnx.helper.make_tensor_value_info('res', TensorProto.FLOAT, [])
node = onnx.helper.make_node('If',
inputs=['cond'],
outputs=['res'],
then_branch=then_body,
else_branch=else_body)
return ([node], [x, y, cond_tensor], [res], [xt_tensor, yt_tensor])
@onnx_test()
def if_then_test_inlined():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [2, 3])
y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [2, 3])
then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT,
[2, 3])
......@@ -2687,7 +3133,7 @@ def if_then_test():
return ([node], [x, y], [res], [cond_tensor, xt_tensor, yt_tensor])
@onnx_test
@onnx_test()
def if_tuple_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [1, 4])
y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [3, 4])
......@@ -2758,7 +3204,7 @@ def if_tuple_test():
y], [res0, res1], [one_tensor, two_tensor, three_tensor])
@onnx_test
@onnx_test()
def imagescaler_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 16, 16])
......@@ -2772,7 +3218,7 @@ def imagescaler_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def imagescaler_half_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1, 3, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1, 3, 16, 16])
......@@ -2786,7 +3232,7 @@ def imagescaler_half_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def implicit_add_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4, 1])
......@@ -2801,7 +3247,7 @@ def implicit_add_bcast_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def implicit_pow_bcast_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4, 1])
......@@ -2817,7 +3263,7 @@ def implicit_pow_bcast_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def implicit_sub_bcast_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.UINT64, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.UINT64, [4, 5])
......@@ -2833,7 +3279,7 @@ def implicit_sub_bcast_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def initializer_not_an_input():
values = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
w = helper.make_tensor(name='w',
......@@ -2853,7 +3299,7 @@ def initializer_not_an_input():
return ([node], [x], [y], [w])
@onnx_test
@onnx_test()
def instance_norm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2])
......@@ -2867,7 +3313,7 @@ def instance_norm_test():
return ([node], [x, scale, bias], [y])
@onnx_test
@onnx_test()
def instance_norm_half_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [2])
......@@ -2881,7 +3327,7 @@ def instance_norm_half_test():
return ([node], [x, scale, bias], [y])
@onnx_test
@onnx_test()
def instance_norm_type_mismatch_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [2])
......@@ -2895,7 +3341,7 @@ def instance_norm_type_mismatch_test():
return ([node], [x, scale, bias], [y])
@onnx_test
@onnx_test()
def instance_norm_invalid_type_test():
x = helper.make_tensor_value_info('0', TensorProto.INT32, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2])
......@@ -2909,7 +3355,7 @@ def instance_norm_invalid_type_test():
return ([node], [x, scale, bias], [y])
@onnx_test
@onnx_test()
def instance_norm_nonbroadcastable_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4])
......@@ -2923,7 +3369,7 @@ def instance_norm_nonbroadcastable_test():
return ([node], [x, scale, bias], [y])
@onnx_test
@onnx_test()
def instance_norm_val_test():
x = np.array([[[[0, 1, 2], [3, 4, 5], [6, 7, 8]],
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]]])
......@@ -2953,7 +3399,7 @@ def instance_norm_val_test():
return ([node], [], [y], [x_tensor, scale_tensor, bias_tensor])
@onnx_test
@onnx_test()
def instance_norm_val_3d_test():
x = np.array([[[[[0, 1], [2, 3]], [[4, 5], [6, 7]]],
[[[0, 1], [2, 3]], [[4, 5], [6, 7]]]]])
......@@ -2983,7 +3429,7 @@ def instance_norm_val_3d_test():
return ([node], [], [y], [x_tensor, scale_tensor, bias_tensor])
@onnx_test
@onnx_test()
def isnan_float_test():
t1 = helper.make_tensor_value_info('t1', TensorProto.FLOAT, [2, 3])
t2 = helper.make_tensor_value_info('t2', TensorProto.FLOAT, [2, 3])
......@@ -2996,7 +3442,7 @@ def isnan_float_test():
return ([node], [t1], [t2])
@onnx_test
@onnx_test()
def isnan_half_test():
t1 = helper.make_tensor_value_info('t1', TensorProto.FLOAT16, [2, 3])
t2 = helper.make_tensor_value_info('t2', TensorProto.FLOAT16, [2, 3])
......@@ -3009,7 +3455,7 @@ def isnan_half_test():
return ([node], [t1], [t2])
@onnx_test
@onnx_test()
def layernorm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 1, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 1, 5])
......@@ -3072,7 +3518,7 @@ def layernorm_test():
bias_add], [x, scale, bias], [y], [pow_tensor, epsilon_tensor])
@onnx_test
@onnx_test()
def leaky_relu_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -3085,7 +3531,7 @@ def leaky_relu_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def less_test():
ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
x1 = helper.make_tensor("x1",
......@@ -3105,7 +3551,7 @@ def less_test():
return ([node], [x2], [y], [x1])
@onnx_test
@onnx_test()
def less_bool_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3])
......@@ -3123,7 +3569,7 @@ def less_bool_test():
return ([node1, node2], [x1, x2], [y])
@onnx_test
@onnx_test()
def lessorequal_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [3])
......@@ -3139,7 +3585,7 @@ def lessorequal_test():
return ([node], [x1, x2], [y])
@onnx_test
@onnx_test()
def log_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -3153,7 +3599,7 @@ def log_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def logical_and_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4, 5])
......@@ -3164,7 +3610,7 @@ def logical_and_bcast_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def logical_or_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.BOOL, [2, 3, 4, 5])
......@@ -3175,7 +3621,7 @@ def logical_or_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def logical_xor_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4, 1])
......@@ -3186,7 +3632,7 @@ def logical_xor_bcast_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def logsoftmax_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 5, 6])
......@@ -3199,7 +3645,7 @@ def logsoftmax_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def logsoftmax_nonstd_input_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [6, 9])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [3, 4])
......@@ -3219,7 +3665,7 @@ def logsoftmax_nonstd_input_test():
return ([node0, node1], [x], [y])
@onnx_test
@onnx_test()
def loop_default_test():
body = helper.make_graph([
helper.make_node("Add", ["a", "b_in"], ["my_local"]),
......@@ -3256,7 +3702,7 @@ def loop_default_test():
return ([node], [a, b], [b_loop, uout])
@onnx_test
@onnx_test()
def loop_test():
body = helper.make_graph([
helper.make_node("Add", ["a", "b_in"], ["my_local"]),
......@@ -3297,7 +3743,7 @@ def loop_test():
return ([node], [iter, cond, a, b], [b_loop, uout])
@onnx_test
@onnx_test()
def lpnormalization_axis_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
......@@ -3309,7 +3755,7 @@ def lpnormalization_axis_error_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def lpnormalization_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
......@@ -3323,7 +3769,7 @@ def lpnormalization_default_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def lpnormalization_l1_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
......@@ -3337,7 +3783,7 @@ def lpnormalization_l1_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def lpnormalization_l2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
......@@ -3349,7 +3795,7 @@ def lpnormalization_l2_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def lpnormalization_p_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
......@@ -3361,7 +3807,7 @@ def lpnormalization_p_error_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def lppool_l1_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 3])
......@@ -3374,7 +3820,7 @@ def lppool_l1_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def lppool_l2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 3])
......@@ -3387,7 +3833,7 @@ def lppool_l2_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def lrn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 28, 24, 24])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 28, 24, 24])
......@@ -3403,7 +3849,7 @@ def lrn_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def matmul_bmbm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 6, 7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [5, 2, 1, 7, 8])
......@@ -3418,7 +3864,7 @@ def matmul_bmbm_test():
return ([node], [m1, m2], [y])
@onnx_test
@onnx_test()
def matmul_bmv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 6, 7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7])
......@@ -3433,7 +3879,7 @@ def matmul_bmv_test():
return ([node], [m1, m2], [y])
@onnx_test
@onnx_test()
def matmul_mv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [6, 7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7])
......@@ -3448,7 +3894,7 @@ def matmul_mv_test():
return ([node], [m1, m2], [y])
@onnx_test
@onnx_test()
def matmul_vbm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [5, 7, 8])
......@@ -3463,7 +3909,7 @@ def matmul_vbm_test():
return ([node], [m1, m2], [y])
@onnx_test
@onnx_test()
def matmul_vm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7, 8])
......@@ -3478,7 +3924,7 @@ def matmul_vm_test():
return ([node], [m1, m2], [y])
@onnx_test
@onnx_test()
def matmul_vv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7])
......@@ -3493,7 +3939,82 @@ def matmul_vv_test():
return ([node], [m1, m2], [y])
@onnx_test
@onnx_test()
def matmul_dyn_mm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7, None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, None])
node = onnx.helper.make_node(
'MatMul',
inputs=['1', '2'],
outputs=['y'],
)
return ([node], [m1, m2], [y])
@onnx_test()
def matmul_dyn_mv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 1])
node = onnx.helper.make_node(
'MatMul',
inputs=['1', '2'],
outputs=['y'],
)
return ([node], [m1, m2], [y])
@onnx_test()
def matmul_dyn_vm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7, None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, None])
node = onnx.helper.make_node(
'MatMul',
inputs=['1', '2'],
outputs=['y'],
)
return ([node], [m1, m2], [y])
@onnx_test()
def matmul_dyn_vv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1])
node = onnx.helper.make_node(
'MatMul',
inputs=['1', '2'],
outputs=['y'],
)
return ([node], [m1, m2], [y])
@onnx_test()
def matmul_dyn_broadcast_error():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [5, 7, None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [5, None])
node = onnx.helper.make_node(
'MatMul',
inputs=['1', '2'],
outputs=['y'],
)
return ([node], [m1, m2], [y])
@onnx_test()
def matmulinteger_test():
m1 = helper.make_tensor_value_info('1', TensorProto.INT8, [3, 6, 16])
m2 = helper.make_tensor_value_info('2', TensorProto.INT8, [3, 16, 8])
......@@ -3508,7 +4029,22 @@ def matmulinteger_test():
return ([node], [m1, m2], [y])
@onnx_test
@onnx_test()
def matmulinteger_dyn_error():
m1 = helper.make_tensor_value_info('1', TensorProto.INT8, [None, 6, 16])
m2 = helper.make_tensor_value_info('2', TensorProto.INT8, [None, 16, 8])
y = helper.make_tensor_value_info('y', TensorProto.INT32, [None, 6, 8])
node = onnx.helper.make_node(
'MatMulInteger',
inputs=['1', '2'],
outputs=['y'],
)
return ([node], [m1, m2], [y])
@onnx_test()
def max_test():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -3524,7 +4060,7 @@ def max_test():
return ([node], [a, b, c], [y])
@onnx_test
@onnx_test()
def maxpool_notset_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 1, 1])
......@@ -3540,7 +4076,7 @@ def maxpool_notset_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def maxpool_same_upper_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
......@@ -3554,7 +4090,7 @@ def maxpool_same_upper_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def mean_broadcast_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 4])
data_1 = helper.make_tensor_value_info('1', TensorProto.FLOAT,
......@@ -3573,7 +4109,7 @@ def mean_broadcast_test():
return ([node], [data_0, data_1, data_2, data_3, data_4], [mean])
@onnx_test
@onnx_test()
def mean_fp16_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1, 2, 3])
data_1 = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1, 2, 3])
......@@ -3589,7 +4125,7 @@ def mean_fp16_test():
return ([node], [data_0, data_1, data_2], [mean])
@onnx_test
@onnx_test()
def mean_invalid_broadcast_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3])
data_1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 2, 3])
......@@ -3604,7 +4140,7 @@ def mean_invalid_broadcast_test():
return ([node], [data_0, data_1, data_2], [mean])
@onnx_test
@onnx_test()
def mean_single_input_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3])
mean = helper.make_tensor_value_info('mean', TensorProto.FLOAT, [1, 2, 3])
......@@ -3614,7 +4150,7 @@ def mean_single_input_test():
return ([node], [data_0], [mean])
@onnx_test
@onnx_test()
def mean_test():
data = [
helper.make_tensor_value_info(str(i), TensorProto.DOUBLE, [2, 2, 2])
......@@ -3628,7 +4164,7 @@ def mean_test():
return ([node], data, [mean])
@onnx_test
@onnx_test()
def mean_integral_test():
data = [
helper.make_tensor_value_info(str(i), TensorProto.INT32, [2, 2, 2])
......@@ -3642,7 +4178,7 @@ def mean_integral_test():
return ([node], data, [mean])
@onnx_test
@onnx_test()
def min_test():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -3658,7 +4194,7 @@ def min_test():
return ([node], [a, b, c], [y])
@onnx_test
@onnx_test()
def mod_test():
a = helper.make_tensor_value_info('0', TensorProto.INT32, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3])
......@@ -3669,7 +4205,7 @@ def mod_test():
return ([node], [a, b], [y])
@onnx_test
@onnx_test()
def mod_test_half():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [3, 3, 3])
......@@ -3680,7 +4216,7 @@ def mod_test_half():
return ([node], [a, b], [y])
@onnx_test
@onnx_test()
def mod_test_different_dtypes():
a = helper.make_tensor_value_info('0', TensorProto.INT16, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3])
......@@ -3695,7 +4231,7 @@ def mod_test_different_dtypes():
return ([node], [a, b], [y])
@onnx_test
@onnx_test()
def mod_test_fmod():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 3, 3])
......@@ -3711,7 +4247,7 @@ def mod_test_fmod():
return ([node], [a, b], [y])
@onnx_test
@onnx_test()
def mod_test_fmod_half():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [3, 3, 3])
......@@ -3725,7 +4261,7 @@ def mod_test_fmod_half():
return ([node], [a, b], [y])
@onnx_test
@onnx_test()
def mod_test_fmod_different_dtypes():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3])
......@@ -3741,7 +4277,7 @@ def mod_test_fmod_different_dtypes():
return ([node], [a, b], [y])
@onnx_test
@onnx_test()
def multinomial_test():
sample_size = 10
seed = 0.0
......@@ -3758,7 +4294,7 @@ def multinomial_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def multinomial_generated_seed_test():
sample_size = 10
input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10])
......@@ -3773,7 +4309,7 @@ def multinomial_generated_seed_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def multinomial_dtype_error_test():
sample_size = 10
dtype = 0
......@@ -3790,7 +4326,7 @@ def multinomial_dtype_error_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def multinomial_int64_test():
sample_size = 10
dtype = 7
......@@ -3809,7 +4345,7 @@ def multinomial_int64_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def neg_test():
x = helper.make_tensor_value_info('0', TensorProto.INT64, [2, 3])
y = helper.make_tensor_value_info('1', TensorProto.INT64, [2, 3])
......@@ -3819,7 +4355,7 @@ def neg_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def neg_dynamic_test():
x = helper.make_tensor_value_info('0', TensorProto.INT64, [None, 3])
y = helper.make_tensor_value_info('1', TensorProto.INT64, [None, 3])
......@@ -3829,7 +4365,7 @@ def neg_dynamic_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def nms_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, [1, 1, 6])
......@@ -3854,7 +4390,7 @@ def nms_test():
return ([node], [b, s, mo, iou, st], [out])
@onnx_test
@onnx_test()
def nms_use_dyn_output_false_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, [1, 1, 6])
......@@ -3879,7 +4415,7 @@ def nms_use_dyn_output_false_test():
return ([node], [b, s, mo, iou, st], [out])
@onnx_test
@onnx_test()
def nms_dynamic_batch_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [None, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT,
......@@ -3906,7 +4442,7 @@ def nms_dynamic_batch_test():
return ([node], [b, s, mo, iou, st], [out])
@onnx_test
@onnx_test()
def nms_dynamic_boxes_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, None, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT,
......@@ -3931,7 +4467,7 @@ def nms_dynamic_boxes_test():
return ([node], [b, s, mo, iou, st], [out])
@onnx_test
@onnx_test()
def nms_dynamic_classes_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT,
......@@ -3956,7 +4492,7 @@ def nms_dynamic_classes_test():
return ([node], [b, s, mo, iou, st], [out])
@onnx_test
@onnx_test()
def not_test():
x = helper.make_tensor_value_info('0', TensorProto.INT32, [4])
y = helper.make_tensor_value_info('1', TensorProto.INT32, [4])
......@@ -3966,7 +4502,7 @@ def not_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def not_bool_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [4])
y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4])
......@@ -3976,7 +4512,7 @@ def not_bool_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def no_pad_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 2])
......@@ -3989,7 +4525,7 @@ def no_pad_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def nonzero_dynamic_test():
x = helper.make_tensor_value_info('data', TensorProto.BOOL, [2, 2])
y = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 3])
......@@ -4001,7 +4537,7 @@ def nonzero_dynamic_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def nonzero_test():
data1 = np.array([[1., 0.], [1., 1.]])
data = helper.make_tensor(name='data',
......@@ -4017,7 +4553,7 @@ def nonzero_test():
return ([node], [], [y], [data])
@onnx_test
@onnx_test()
def nonzero_int_test():
data1 = np.array([[1, 1, 0], [1, 0, 1]])
data = helper.make_tensor(name='data',
......@@ -4033,7 +4569,7 @@ def nonzero_int_test():
return ([node], [], [y], [data])
@onnx_test
@onnx_test()
def onehot_test():
axis_value = 0
depth = np.array([3])
......@@ -4055,7 +4591,7 @@ def onehot_test():
return ([node], [indices, values], [y], [depth_tensor])
@onnx_test
@onnx_test()
def pad_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 4])
......@@ -4068,7 +4604,7 @@ def pad_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def pad_3arg_test():
values = np.array([1])
val_tensor = helper.make_tensor(name='val',
......@@ -4100,7 +4636,7 @@ def pad_3arg_test():
return ([arg_val, arg_pad, node], [x], [y])
@onnx_test
@onnx_test()
def pad_reflect_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 5])
......@@ -4123,7 +4659,7 @@ def pad_reflect_test():
return ([arg_pad, node], [x], [y])
@onnx_test
@onnx_test()
def pad_reflect_multiaxis_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 5])
......@@ -4146,7 +4682,54 @@ def pad_reflect_multiaxis_test():
return ([arg_pad, node], [x], [y])
@onnx_test
@onnx_test()
def pad_attr_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None])
node = onnx.helper.make_node('Pad',
inputs=['0'],
pads=[1, 1, 1, 1],
outputs=['1'])
return ([node], [x], [y])
@onnx_test()
def pad_cnst_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None])
sizes = np.array([0, 2, 0, 1])
pad_tensor = helper.make_tensor(name='pad_size',
data_type=TensorProto.INT32,
dims=sizes.shape,
vals=sizes.astype(int))
arg_pad = onnx.helper.make_node('Constant',
inputs=[],
outputs=['arg_pad'],
value=pad_tensor)
node = onnx.helper.make_node('Pad', inputs=['0', 'arg_pad'], outputs=['1'])
return ([arg_pad, node], [x], [y])
@onnx_test()
def pad_dyn_reflect_error():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None])
node = onnx.helper.make_node('Pad',
mode='reflect',
inputs=['0'],
pads=[0, 2, 0, 1],
outputs=['1'])
return ([node], [x], [y])
@onnx_test()
def pow_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 3, 4, 5])
......@@ -4162,7 +4745,7 @@ def pow_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def pow_fp32_i64_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.INT64, [2, 3, 4, 5])
......@@ -4178,7 +4761,7 @@ def pow_fp32_i64_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def pow_i64_fp32_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT64, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 3, 4, 5])
......@@ -4194,7 +4777,7 @@ def pow_i64_fp32_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def prefix_scan_sum_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 2])
......@@ -4211,7 +4794,7 @@ def prefix_scan_sum_test():
return ([node], [x], [y], [axis_tensor])
@onnx_test
@onnx_test()
def prelu_brcst_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 5])
......@@ -4227,7 +4810,7 @@ def prelu_brcst_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def quantizelinear_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
......@@ -4242,7 +4825,7 @@ def quantizelinear_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def quantizelinear_int32_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT32, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
......@@ -4257,7 +4840,7 @@ def quantizelinear_int32_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def quantizelinear_zero_point_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
......@@ -4288,17 +4871,17 @@ def make_quantizelinear_axis_graph(axis):
return ([node], [arg0, arg1, arg2], [arg_out])
@onnx_test
@onnx_test()
def quantizelinear_axis_test():
return make_quantizelinear_axis_graph(2)
@onnx_test
@onnx_test()
def quantizelinear_neg_axis_test():
return make_quantizelinear_axis_graph(-2)
@onnx_test
@onnx_test()
def randomnormal_test():
dtype = 11
mean = 10.0
......@@ -4320,7 +4903,7 @@ def randomnormal_test():
return ([node], [], [output])
@onnx_test
@onnx_test()
def randomnormal_dtype_error_test():
dtype = 6
shape = [2, 3, 4]
......@@ -4336,7 +4919,7 @@ def randomnormal_dtype_error_test():
return ([node], [], [output])
@onnx_test
@onnx_test()
def randomnormal_generated_seed_test():
sample_size = 10
input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10])
......@@ -4351,7 +4934,7 @@ def randomnormal_generated_seed_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def randomnormal_shape_error_test():
dtype = 1
output = helper.make_tensor_value_info('output', TensorProto.FLOAT,
......@@ -4365,7 +4948,7 @@ def randomnormal_shape_error_test():
return ([node], [], [output])
@onnx_test
@onnx_test()
def randomnormallike_test():
dtype = 10
mean = 10.0
......@@ -4387,7 +4970,7 @@ def randomnormallike_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def randomnormallike_type_error_test():
seed = 0
input = helper.make_tensor_value_info('input', TensorProto.INT32,
......@@ -4403,7 +4986,7 @@ def randomnormallike_type_error_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def randomuniform_test():
dtype = 11
high = 1.0
......@@ -4425,7 +5008,7 @@ def randomuniform_test():
return ([node], [], [output])
@onnx_test
@onnx_test()
def randomuniform_dtype_error_test():
dtype = 6
shape = [2, 3, 4]
......@@ -4441,7 +5024,7 @@ def randomuniform_dtype_error_test():
return ([node], [], [output])
@onnx_test
@onnx_test()
def randomuniform_generated_seed_test():
sample_size = 10
input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10])
......@@ -4456,7 +5039,7 @@ def randomuniform_generated_seed_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def randomuniform_shape_error_test():
dtype = 1
output = helper.make_tensor_value_info('output', TensorProto.FLOAT,
......@@ -4470,7 +5053,7 @@ def randomuniform_shape_error_test():
return ([node], [], [output])
@onnx_test
@onnx_test()
def randomuniformlike_test():
dtype = 10
high = 10.0
......@@ -4492,7 +5075,7 @@ def randomuniformlike_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def randomuniformlike_type_error_test():
seed = 0
input = helper.make_tensor_value_info('input', TensorProto.INT32,
......@@ -4508,7 +5091,7 @@ def randomuniformlike_type_error_test():
return ([node], [input], [output])
@onnx_test
@onnx_test()
def range_test():
start_val = np.array([10])
......@@ -4551,7 +5134,7 @@ def range_test():
return ([start, limit, delta, node], [], [y])
@onnx_test
@onnx_test()
def range_float_test():
start_val = np.array([2])
......@@ -4594,7 +5177,7 @@ def range_float_test():
return ([start, limit, delta, node], [], [y])
@onnx_test
@onnx_test()
def recip_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3])
......@@ -4608,7 +5191,7 @@ def recip_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducel1_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
......@@ -4624,6 +5207,34 @@ def reducel1_test():
@onnx_test
def reducel1_dyn_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None])
axes = [-2]
node = onnx.helper.make_node('ReduceL1',
inputs=['x'],
outputs=['y'],
axes=axes,
keepdims=0)
return ([node], [x], [y])
@onnx_test
def reducel1_dyn_noaxes_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None])
node = onnx.helper.make_node('ReduceL1',
inputs=['x'],
outputs=['y'],
keepdims=0)
return ([node], [x], [y])
@onnx_test()
def reducel2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 5])
......@@ -4638,7 +5249,7 @@ def reducel2_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reduce_log_sum_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 1, 5, 6])
......@@ -4653,7 +5264,7 @@ def reduce_log_sum_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reduce_log_sum_exp_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 5, 6])
......@@ -4668,10 +5279,11 @@ def reduce_log_sum_exp_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducemax_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
axes = [2]
node = onnx.helper.make_node('ReduceMax',
......@@ -4684,6 +5296,21 @@ def reducemax_test():
@onnx_test
def reducemax_dyn_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 4, 6])
axes = [2]
node = onnx.helper.make_node('ReduceMax',
inputs=['x'],
outputs=['y'],
axes=axes,
keepdims=0)
return ([node], [x], [y])
@onnx_test()
def reducemean_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
......@@ -4698,7 +5325,7 @@ def reducemean_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducemean_keepdims_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
......@@ -4713,7 +5340,7 @@ def reducemean_keepdims_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducemin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 1, 5, 1])
......@@ -4728,7 +5355,7 @@ def reducemin_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reduceprod_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
......@@ -4743,7 +5370,7 @@ def reduceprod_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducesum_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
......@@ -4758,7 +5385,7 @@ def reducesum_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducesum_empty_axes_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
......@@ -4777,7 +5404,7 @@ def reducesum_empty_axes_test():
return ([node], [x], [y], [axes_tensor])
@onnx_test
@onnx_test()
def reducesum_noop_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
......@@ -4796,7 +5423,7 @@ def reducesum_noop_test():
return ([node], [x], [y], [axes_tensor])
@onnx_test
@onnx_test()
def reducesum_keepdims_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 1])
......@@ -4811,7 +5438,7 @@ def reducesum_keepdims_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducesum_multiaxis_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 1])
......@@ -4826,7 +5453,7 @@ def reducesum_multiaxis_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reducesum_square_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
......@@ -4841,7 +5468,7 @@ def reducesum_square_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reshape_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [4, 2, 3])
x_shape = helper.make_tensor_value_info('1', TensorProto.INT64, [2])
......@@ -4860,7 +5487,7 @@ def reshape_test():
[helper.make_tensor('1', TensorProto.INT64, [2], [3, 8])])
@onnx_test
@onnx_test()
def reshape_non_standard_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 3, 2])
......@@ -4880,7 +5507,7 @@ def reshape_non_standard_test():
return ([trans, res], [x], [y])
@onnx_test
@onnx_test()
def resize_downsample_f_test():
scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales',
......@@ -4902,7 +5529,7 @@ def resize_downsample_f_test():
return ([node], [X], [Y], [scale_tensor])
@onnx_test
@onnx_test()
def resize_downsample_c_test():
scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales',
......@@ -4923,7 +5550,7 @@ def resize_downsample_c_test():
return ([node], [X], [Y], [scale_tensor])
@onnx_test
@onnx_test()
def resize_downsample_linear_test():
scales = np.array([1.0, 1.0, 0.6, 0.5], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales',
......@@ -4942,7 +5569,7 @@ def resize_downsample_linear_test():
return ([node], [X], [Y], [scale_tensor])
@onnx_test
@onnx_test()
def resize_nonstd_input_test():
scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales',
......@@ -4968,7 +5595,7 @@ def resize_nonstd_input_test():
return ([trn, node], [X], [Y], [scale_tensor])
@onnx_test
@onnx_test()
def resize_outsize_test():
out_lens = np.array([1, 1, 4, 6], dtype=np.int64)
out_lens_tensor = helper.make_tensor(name='out_lens',
......@@ -4991,7 +5618,7 @@ def resize_outsize_test():
return ([node], [X], [Y], [out_lens_tensor])
@onnx_test
@onnx_test()
def resize_upsample_linear_ac_test():
scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32)
scales_tensor = helper.make_tensor(name='scales',
......@@ -5012,7 +5639,7 @@ def resize_upsample_linear_ac_test():
return ([node], [X], [Y], [scales_tensor])
@onnx_test
@onnx_test()
def resize_upsample_linear_test():
scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32)
scales_tensor = helper.make_tensor(name='scales',
......@@ -5031,7 +5658,7 @@ def resize_upsample_linear_test():
return ([node], [X], [Y], [scales_tensor])
@onnx_test
@onnx_test()
def resize_upsample_pf_test():
scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales',
......@@ -5050,7 +5677,7 @@ def resize_upsample_pf_test():
return ([node], [X], [Y], [scale_tensor])
@onnx_test
@onnx_test()
def resize_upsample_pc_test():
scales = np.array([1.0, 1.0, 2.0, 1.5], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales',
......@@ -5073,7 +5700,7 @@ def resize_upsample_pc_test():
return ([node], [X], [Y], [scale_tensor])
@onnx_test
@onnx_test()
def reversesequence_4D_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 2, 2])
......@@ -5089,7 +5716,7 @@ def reversesequence_4D_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reversesequence_batch_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
seq_lens = np.array([1, 2, 3, 4])
......@@ -5117,7 +5744,7 @@ def reversesequence_batch_test():
return ([arg_seq_lens, node], [x], [y])
@onnx_test
@onnx_test()
def reversesequence_batch_axis_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4, 2])
......@@ -5133,7 +5760,7 @@ def reversesequence_batch_axis_err_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reversesequence_rank_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4])
......@@ -5147,7 +5774,7 @@ def reversesequence_rank_err_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reversesequence_sequence_lens_shape_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4])
......@@ -5161,7 +5788,7 @@ def reversesequence_sequence_lens_shape_err_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reversesequence_same_axis_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4])
......@@ -5177,7 +5804,7 @@ def reversesequence_same_axis_err_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reversesequence_time_axis_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4, 2, 3])
......@@ -5193,7 +5820,7 @@ def reversesequence_time_axis_err_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def reversesequence_time_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4])
......@@ -5209,7 +5836,7 @@ def reversesequence_time_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def roialign_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 4, 7, 8])
roi = helper.make_tensor_value_info('rois', TensorProto.FLOAT, [8, 4])
......@@ -5223,7 +5850,7 @@ def roialign_default_test():
return ([node], [x, roi, bi], [y])
@onnx_test
@onnx_test()
def roialign_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 5, 4, 7])
roi = helper.make_tensor_value_info('rois', TensorProto.FLOAT, [8, 4])
......@@ -5244,7 +5871,7 @@ def roialign_test():
return ([node], [x, roi, bi], [y])
@onnx_test
@onnx_test()
def scatter_add_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32,
......@@ -5264,7 +5891,7 @@ def scatter_add_test():
return ([node], [x, i, u], [y])
@onnx_test
@onnx_test()
def scatter_mul_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32,
......@@ -5284,7 +5911,7 @@ def scatter_mul_test():
return ([node], [x, i, u], [y])
@onnx_test
@onnx_test()
def scatter_none_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32,
......@@ -5304,7 +5931,7 @@ def scatter_none_test():
return ([node], [x, i, u], [y])
@onnx_test
@onnx_test()
def scatternd_add_test():
data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
indices = helper.make_tensor_value_info('indices', TensorProto.INT64,
......@@ -5322,7 +5949,7 @@ def scatternd_add_test():
return ([node], [data, indices, updates], [output])
@onnx_test
@onnx_test()
def scatternd_mul_test():
data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
indices = helper.make_tensor_value_info('indices', TensorProto.INT64,
......@@ -5340,7 +5967,7 @@ def scatternd_mul_test():
return ([node], [data, indices, updates], [output])
@onnx_test
@onnx_test()
def scatternd_test():
data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
indices = helper.make_tensor_value_info('indices', TensorProto.INT64,
......@@ -5357,7 +5984,25 @@ def scatternd_test():
return ([node], [data, indices, updates], [output])
@onnx_test
@onnx_test()
def scatternd_dyn_test():
data = helper.make_tensor_value_info('data', TensorProto.FLOAT,
[None, 2, 2])
indices = helper.make_tensor_value_info('indices', TensorProto.INT64,
[None, 1, 2])
updates = helper.make_tensor_value_info('updates', TensorProto.FLOAT,
[None, 1, 2])
output = helper.make_tensor_value_info('output', TensorProto.FLOAT,
[None, 2, 2])
node = onnx.helper.make_node('ScatterND',
inputs=['data', 'indices', 'updates'],
outputs=['output'])
return ([node], [data, indices, updates], [output])
@onnx_test()
def selu_test():
x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [2, 3])
......@@ -5371,7 +6016,7 @@ def selu_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def shape_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [4])
......@@ -5385,7 +6030,7 @@ def shape_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def shape_gather_test():
values = np.array([1])
# value = helper.make_tensor_value_info('value', TensorProto.INT32, [1])
......@@ -5420,7 +6065,7 @@ def shape_gather_test():
return ([node_const, node_shape, node_gather], [x], [z])
@onnx_test
@onnx_test()
def sign_test():
x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [10, 5])
y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [10, 5])
......@@ -5434,7 +6079,7 @@ def sign_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def sin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -5448,7 +6093,7 @@ def sin_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def sinh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -5462,7 +6107,7 @@ def sinh_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def sinh_dynamic_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None])
......@@ -5476,7 +6121,7 @@ def sinh_dynamic_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def size_float_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
......@@ -5488,7 +6133,7 @@ def size_float_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def size_half_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [3, 1])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
......@@ -5500,7 +6145,7 @@ def size_half_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def size_int_test():
x = helper.make_tensor_value_info('x', TensorProto.INT32, [8, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
......@@ -5512,7 +6157,7 @@ def size_int_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def size_verify_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5, 3])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
......@@ -5524,7 +6169,7 @@ def size_verify_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def slice_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 2])
......@@ -5539,7 +6184,133 @@ def slice_test():
return ([node], [x], [y])
@onnx_test()
def slice_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None, 2])
node = onnx.helper.make_node('Slice',
inputs=['0'],
axes=[0],
starts=[1],
ends=[2],
outputs=['1'])
return ([node], [x], [y])
@onnx_test
def slice_step_dyn_test():
# A slice command with non - default steps will have a "Step"
# instruction added in parsing.
step = np.array([2, 1])
step_tensor = helper.make_tensor(name="step",
data_type=TensorProto.INT32,
dims=step.shape,
vals=step.astype(int))
arg_step = helper.make_node("Constant",
inputs=[],
outputs=['arg_step'],
value=step_tensor)
axis = np.array([-1, -2])
axis_tensor = helper.make_tensor(name="axis",
data_type=TensorProto.INT32,
dims=axis.shape,
vals=axis.astype(int))
arg_axis = helper.make_node("Constant",
inputs=[],
outputs=['arg_axis'],
value=axis_tensor)
end = np.array([-1, -1])
end_tensor = helper.make_tensor(name="end",
data_type=TensorProto.INT32,
dims=end.shape,
vals=end.astype(int))
arg_end = helper.make_node("Constant",
inputs=[],
outputs=['arg_end'],
value=end_tensor)
start = np.array([-5, -3])
start_tensor = helper.make_tensor(name="start",
data_type=TensorProto.INT32,
dims=start.shape,
vals=start.astype(int))
arg_start = helper.make_node("Constant",
inputs=[],
outputs=['arg_start'],
value=start_tensor)
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 2])
node = onnx.helper.make_node(
'Slice',
inputs=['0', 'arg_start', 'arg_end', 'arg_axis', 'arg_step'],
outputs=['1'])
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test
def slice_reverse_dyn_test():
# A slice command with negative step on any axis will have
# a "Reverse" instruction added in parsing.
step = np.array([-1, 1])
step_tensor = helper.make_tensor(name="step",
data_type=TensorProto.INT32,
dims=step.shape,
vals=step.astype(int))
arg_step = helper.make_node("Constant",
inputs=[],
outputs=['arg_step'],
value=step_tensor)
axis = np.array([-1, -2])
axis_tensor = helper.make_tensor(name="axis",
data_type=TensorProto.INT32,
dims=axis.shape,
vals=axis.astype(int))
arg_axis = helper.make_node("Constant",
inputs=[],
outputs=['arg_axis'],
value=axis_tensor)
end = np.array([-1, -1])
end_tensor = helper.make_tensor(name="end",
data_type=TensorProto.INT32,
dims=end.shape,
vals=end.astype(int))
arg_end = helper.make_node("Constant",
inputs=[],
outputs=['arg_end'],
value=end_tensor)
start = np.array([-5, -3])
start_tensor = helper.make_tensor(name="start",
data_type=TensorProto.INT32,
dims=start.shape,
vals=start.astype(int))
arg_start = helper.make_node("Constant",
inputs=[],
outputs=['arg_start'],
value=start_tensor)
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 2])
node = onnx.helper.make_node(
'Slice',
inputs=['0', 'arg_start', 'arg_end', 'arg_axis', 'arg_step'],
outputs=['1'])
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test()
def slice_3arg_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 5])
......@@ -5571,7 +6342,7 @@ def slice_3arg_test():
return ([arg_start, arg_end, node], [x], [y])
@onnx_test
@onnx_test()
def slice_5arg_test():
step = np.array([1, 1])
step_tensor = helper.make_tensor(name="step",
......@@ -5624,7 +6395,7 @@ def slice_5arg_test():
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test
@onnx_test()
def slice_5arg_reverse_test():
step = np.array([-1, 1])
step_tensor = helper.make_tensor(name="step",
......@@ -5677,7 +6448,7 @@ def slice_5arg_reverse_test():
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test
@onnx_test()
def slice_5arg_step_test():
step = np.array([-2, 2])
step_tensor = helper.make_tensor(name="step",
......@@ -5730,7 +6501,7 @@ def slice_5arg_step_test():
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test
@onnx_test()
def slice_max_end_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [10, 20])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [9, 17])
......@@ -5745,7 +6516,7 @@ def slice_max_end_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def softmax_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3])
......@@ -5755,7 +6526,7 @@ def softmax_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def softmax_nonstd_input_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [6, 8])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [3, 4])
......@@ -5772,7 +6543,17 @@ def softmax_nonstd_input_test():
return ([node0, node1], [x], [y])
@onnx_test
@onnx_test()
def softmax_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 4, 4])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 3, 4, 4])
node = onnx.helper.make_node('Softmax', inputs=['0'], outputs=['1'])
return ([node], [x], [y])
@onnx_test()
def softsign_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [5])
......@@ -5791,7 +6572,7 @@ def softplus_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def softsign_nd_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [3, 4, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [3, 4, 5])
......@@ -5810,7 +6591,7 @@ def softplus_nd_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def split_minus_axis_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 5])
......@@ -5827,7 +6608,7 @@ def split_minus_axis_test():
return ([node], [x], [y1, y2, y3])
@onnx_test
@onnx_test()
def split_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7])
......@@ -5843,7 +6624,7 @@ def split_test():
return ([node], [x], [y1, y2, y3])
@onnx_test
@onnx_test()
def split_test_default():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [5, 15])
......@@ -5858,7 +6639,7 @@ def split_test_default():
return ([node], [x], [y1, y2])
@onnx_test
@onnx_test()
def split_test_no_attribute():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [300, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [75, 15])
......@@ -5885,7 +6666,7 @@ def split_test_no_attribute():
return ([const_node, node], [x], [y1, y2, y3, y4])
@onnx_test
@onnx_test()
def split_test_no_attribute_invalid_split():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [300, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [75, 15])
......@@ -5912,7 +6693,7 @@ def split_test_no_attribute_invalid_split():
return ([const_node, node], [x], [y1, y2, y3, y4])
@onnx_test
@onnx_test()
def split_test_invalid_split():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7])
......@@ -5928,7 +6709,7 @@ def split_test_invalid_split():
return ([node], [x], [y1, y2, y3])
@onnx_test
@onnx_test()
def split_test_no_attribute_invalid_input_split():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7])
......@@ -5944,7 +6725,7 @@ def split_test_no_attribute_invalid_input_split():
return ([node], [x], [y1, y2, y3])
@onnx_test
@onnx_test()
def sqrt_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10, 15])
......@@ -5958,7 +6739,7 @@ def sqrt_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def squeeze_axes_input_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 1, 5, 1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 5])
......@@ -5975,7 +6756,7 @@ def squeeze_axes_input_test():
return ([node], [x], [y], [axes_tensor])
@onnx_test
@onnx_test()
def squeeze_empty_axes_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 1, 5, 1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 5])
......@@ -5992,7 +6773,7 @@ def squeeze_empty_axes_test():
return ([node], [x], [y], [axes_tensor])
@onnx_test
@onnx_test()
def squeeze_unsqueeze_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, 1, 1, 2, 1])
......@@ -6012,7 +6793,27 @@ def squeeze_unsqueeze_test():
return ([node, node2], [x], [y])
@onnx_test
@onnx_test()
def squeeze_unsqueeze_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, None, 1, 1, None, 1])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT,
[1, 1, None, 1, None, 1])
node = onnx.helper.make_node('Squeeze',
inputs=['0'],
axes=[0, 2, 3, 5],
outputs=['1'])
node2 = onnx.helper.make_node('Unsqueeze',
inputs=['1'],
axes=[0, 1, 3, 5],
outputs=['2'])
return ([node, node2], [x], [y])
@onnx_test()
def sub_bcast_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
......@@ -6030,7 +6831,7 @@ def sub_bcast_test():
return ([node], [arg0, arg1], [arg_out])
@onnx_test
@onnx_test()
def sub_scalar_test():
values = np.array([1])
arg_node = helper.make_tensor_value_info('0', TensorProto.FLOAT,
......@@ -6059,7 +6860,7 @@ def sub_scalar_test():
return ([arg_const, node], [arg_node], [arg_out])
@onnx_test
@onnx_test()
def sum_int_test():
a = helper.make_tensor_value_info('0', TensorProto.INT16, [3])
b = helper.make_tensor_value_info('1', TensorProto.UINT16, [3])
......@@ -6079,7 +6880,7 @@ def sum_int_test():
return ([cnode1, cnode2, node], [a, b, c], [y])
@onnx_test
@onnx_test()
def sum_test():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
......@@ -6095,7 +6896,7 @@ def sum_test():
return ([node], [a, b, c], [y])
@onnx_test
@onnx_test()
def sum_type_test():
valb = np.array([1, 0])
t_bool = helper.make_tensor(name="bool",
......@@ -6189,7 +6990,7 @@ def sum_type_test():
])
@onnx_test
@onnx_test()
def tan_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
......@@ -6203,7 +7004,7 @@ def tan_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def tanh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1])
......@@ -6217,7 +7018,7 @@ def tanh_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def thresholdedrelu_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 3])
......@@ -6229,7 +7030,7 @@ def thresholdedrelu_default_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def thresholdedrelu_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 3])
......@@ -6243,7 +7044,7 @@ def thresholdedrelu_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def thresholdedrelu_int_test():
x = helper.make_tensor_value_info('x', TensorProto.INT32, [2, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.INT32, [2, 2, 3])
......@@ -6257,7 +7058,7 @@ def thresholdedrelu_int_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def tile_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [2])
......@@ -6269,7 +7070,7 @@ def tile_test():
[helper.make_tensor('y', TensorProto.INT64, [2], [1, 2])])
@onnx_test
@onnx_test()
def tile_test_3x2():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [2])
......@@ -6281,7 +7082,7 @@ def tile_test_3x2():
[helper.make_tensor('y', TensorProto.INT64, [2], [3, 2])])
@onnx_test
@onnx_test()
def topk_attrk_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 5, 3, 2])
val = helper.make_tensor_value_info('val', TensorProto.FLOAT, [2, 2, 3, 2])
......@@ -6295,7 +7096,7 @@ def topk_attrk_test():
return ([node], [x], [val, ind])
@onnx_test
@onnx_test()
def topk_neg_axis_test():
k = np.array([3])
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
......@@ -6316,7 +7117,7 @@ def topk_neg_axis_test():
return ([node], [x], [val, ind], [k_tensor])
@onnx_test
@onnx_test()
def topk_test():
k = np.array([4])
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 5, 3, 2])
......@@ -6350,7 +7151,7 @@ def transpose_default_perm_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def transpose_invalid_perm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 4, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 2, 2])
......@@ -6365,7 +7166,7 @@ def transpose_invalid_perm_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def transpose_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 2, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 2, 2])
......@@ -6380,7 +7181,7 @@ def transpose_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def transpose_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 2, 2, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 3, 2, 2])
......@@ -6425,7 +7226,93 @@ def transpose_gather_test():
return ([td, ti, node], [x, i], [y])
@onnx_test
@onnx_test()
def trilu_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
node = onnx.helper.make_node(
'Trilu',
inputs=['x'],
outputs=['y'],
)
return ([node], [x], [y])
@onnx_test()
def trilu_batch_diff_k_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 3])
k = np.array([2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 3])
k_tensor = helper.make_tensor(name='k',
data_type=TensorProto.INT64,
dims=k.shape,
vals=k.astype(np.int64))
node = onnx.helper.make_node(
'Trilu',
inputs=['x', 'k'],
outputs=['y'],
)
return ([node], [x], [y], [k_tensor])
@onnx_test()
def trilu_lower_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
node = onnx.helper.make_node('Trilu', inputs=['x'], outputs=['y'], upper=0)
return ([node], [x], [y])
@onnx_test()
def trilu_neg_k_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
k = np.array([-1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
k_tensor = helper.make_tensor(name='k',
data_type=TensorProto.INT64,
dims=k.shape,
vals=k.astype(np.int64))
node = onnx.helper.make_node('Trilu', inputs=['x', 'k'], outputs=['y'])
return ([node], [x], [y], [k_tensor])
@onnx_test()
def trilu_out_k_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
k = np.array([5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
k_tensor = helper.make_tensor(name='k',
data_type=TensorProto.INT64,
dims=k.shape,
vals=k.astype(np.int64))
node = onnx.helper.make_node('Trilu', inputs=['x', 'k'], outputs=['y'])
return ([node], [x], [y], [k_tensor])
@onnx_test()
def trilu_row_one_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 4])
k = np.array([1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 4])
k_tensor = helper.make_tensor(name='k',
data_type=TensorProto.INT64,
dims=k.shape,
vals=k.astype(np.int64))
node = onnx.helper.make_node(
'Trilu',
inputs=['x', 'k'],
outputs=['y'],
)
return ([node], [x], [y], [k_tensor])
@onnx_test()
def undefined_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 3, 4, 5])
......@@ -6435,7 +7322,7 @@ def undefined_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def unknown_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
......@@ -6451,7 +7338,7 @@ def unknown_test():
return ([node, node2], [x, y], [a])
@onnx_test
@onnx_test()
def unknown_aten_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
......@@ -6468,7 +7355,7 @@ def unknown_aten_test():
return ([node], [x, y], [a])
@onnx_test
@onnx_test()
def upsample_linear_test():
scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32)
scales_tensor = helper.make_tensor(name='scales',
......@@ -6487,7 +7374,7 @@ def upsample_linear_test():
return ([node], [X], [Y], [scales_tensor])
@onnx_test
@onnx_test()
def upsample_test():
scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales',
......@@ -6508,7 +7395,7 @@ def upsample_test():
return ([node], [X], [Y], [scale_tensor])
@onnx_test
@onnx_test()
def variable_batch_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 16, 16])
......@@ -6520,7 +7407,7 @@ def variable_batch_test():
return ([node], [x], [y])
@onnx_test
@onnx_test()
def variable_batch_leq_zero_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [0, 3, 16, 16])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [-1, 3, 16, 16])
......@@ -6531,7 +7418,7 @@ def variable_batch_leq_zero_test():
return ([node], [x, y], [z])
@onnx_test
@onnx_test()
def where_test():
c = helper.make_tensor_value_info('c', TensorProto.BOOL, [2])
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2])
......@@ -6543,3 +7430,32 @@ def where_test():
outputs=['z'])
return ([node], [c, x, y], [z])
@onnx_test()
def where_dyn_test():
c = helper.make_tensor_value_info('c', TensorProto.BOOL, [None, 2, 2])
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 2, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 2, 2])
z = helper.make_tensor_value_info('z', TensorProto.FLOAT, [None, 2, 2])
node = onnx.helper.make_node('Where',
inputs=['c', 'x', 'y'],
outputs=['z'])
return ([node], [c, x, y], [z])
@onnx_test()
def where_mixed_test():
# mixture of static and dynamic input shapes is not supported
c = helper.make_tensor_value_info('c', TensorProto.BOOL, [None, 2, 2])
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 2, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 2, 2])
z = helper.make_tensor_value_info('z', TensorProto.FLOAT, [None, 2, 2])
node = onnx.helper.make_node('Where',
inputs=['c', 'x', 'y'],
outputs=['z'])
return ([node], [c, x, y], [z])
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment