Commit e986fc57 authored by charlie's avatar charlie
Browse files

Merge branch 'develop' of github.com:ROCmSoftwarePlatform/AMDMIGraphX into dyn_pad

parents 4fc22f8f 56c43445
...@@ -109,8 +109,12 @@ struct loader ...@@ -109,8 +109,12 @@ struct loader
ap(brief, {"--brief"}, ap.help("Make the output brief."), ap.set_value(true)); ap(brief, {"--brief"}, ap.help("Make the output brief."), ap.set_value(true));
ap(output_type, ap(output_type,
{"--cpp"}, {"--cpp"},
ap.help("Print out the program as cpp program."), ap.help("Print out the program as C++ program."),
ap.set_value("cpp")); ap.set_value("cpp"));
ap(output_type,
{"--python", "--py"},
ap.help("Print out the program as python program."),
ap.set_value("py"));
ap(output_type, {"--json"}, ap.help("Print out program as json."), ap.set_value("json")); ap(output_type, {"--json"}, ap.help("Print out program as json."), ap.set_value("json"));
ap(output_type, ap(output_type,
{"--text"}, {"--text"},
...@@ -259,7 +263,9 @@ struct loader ...@@ -259,7 +263,9 @@ struct loader
type = "binary"; type = "binary";
} }
if(type == "cpp") if(type == "py")
p.print_py(*os);
else if(type == "cpp")
p.print_cpp(*os); p.print_cpp(*os);
else if(type == "graphviz") else if(type == "graphviz")
p.print_graph(*os, brief); p.print_graph(*os, brief);
......
...@@ -30,23 +30,31 @@ namespace migraphx { ...@@ -30,23 +30,31 @@ namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS { inline namespace MIGRAPHX_INLINE_NS {
template <class T> template <class T>
T generic_read_file(const std::string& filename) T generic_read_file(const std::string& filename, size_t offset = 0, size_t nbytes = 0)
{ {
std::ifstream is(filename, std::ios::binary | std::ios::ate); std::ifstream is(filename, std::ios::binary | std::ios::ate);
std::streamsize size = is.tellg(); if(nbytes == 0)
if(size < 1) {
// if there is a non-zero offset and nbytes is not set,
// calculate size of remaining bytes to read
nbytes = is.tellg();
if(offset > nbytes)
MIGRAPHX_THROW("offset is larger than file size");
nbytes -= offset;
}
if(nbytes < 1)
MIGRAPHX_THROW("Invalid size for: " + filename); MIGRAPHX_THROW("Invalid size for: " + filename);
is.seekg(0, std::ios::beg); is.seekg(offset, std::ios::beg);
T buffer(size, 0); T buffer(nbytes, 0);
if(not is.read(&buffer[0], size)) if(not is.read(&buffer[0], nbytes))
MIGRAPHX_THROW("Error reading file: " + filename); MIGRAPHX_THROW("Error reading file: " + filename);
return buffer; return buffer;
} }
std::vector<char> read_buffer(const std::string& filename) std::vector<char> read_buffer(const std::string& filename, size_t offset, size_t nbytes)
{ {
return generic_read_file<std::vector<char>>(filename); return generic_read_file<std::vector<char>>(filename, offset, nbytes);
} }
std::string read_string(const std::string& filename) std::string read_string(const std::string& filename)
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
namespace migraphx { namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS { inline namespace MIGRAPHX_INLINE_NS {
std::vector<char> read_buffer(const std::string& filename); std::vector<char> read_buffer(const std::string& filename, size_t offset = 0, size_t nbytes = 0);
std::string read_string(const std::string& filename); std::string read_string(const std::string& filename);
void write_buffer(const std::string& filename, const char* buffer, std::size_t size); void write_buffer(const std::string& filename, const char* buffer, std::size_t size);
......
...@@ -205,6 +205,12 @@ struct module ...@@ -205,6 +205,12 @@ struct module
void print_graph(std::ostream& os, bool brief = false) const; void print_graph(std::ostream& os, bool brief = false) const;
void print_py(std::ostream& os) const;
std::unordered_map<instruction_ref, std::string>
print_py(std::ostream& os,
const std::string& mname,
std::unordered_map<instruction_ref, std::string> names) const;
void print_cpp(std::ostream& os) const; void print_cpp(std::ostream& os) const;
std::unordered_map<instruction_ref, std::string> std::unordered_map<instruction_ref, std::string>
print_cpp(std::ostream& os, print_cpp(std::ostream& os,
......
...@@ -115,6 +115,7 @@ struct program ...@@ -115,6 +115,7 @@ struct program
print_func) const; print_func) const;
void print_graph(std::ostream& os, bool brief = false) const; void print_graph(std::ostream& os, bool brief = false) const;
void print_py(std::ostream& os) const;
void print_cpp(std::ostream& os) const; void print_cpp(std::ostream& os) const;
void dry_run(parameter_map params) const; void dry_run(parameter_map params) const;
......
...@@ -789,6 +789,22 @@ static std::string cpp_var_name(const std::string& name) ...@@ -789,6 +789,22 @@ static std::string cpp_var_name(const std::string& name)
return to_c_id("x_" + replace_string(name, ":", "_module_")); return to_c_id("x_" + replace_string(name, ":", "_module_"));
} }
static void print_py_op(std::ostream& os, const operation& op)
{
auto v = op.to_value();
os << "migraphx.op(" << enclose_name(op.name());
auto default_values = make_op(op.name()).to_value();
for(auto&& x : v)
{
auto name = x.get_key();
if(default_values[name] == x)
continue;
os << ", " << name << "=" << to_json_string(x.without_key());
}
os << ")";
}
static void print_make_op(std::ostream& os, const operation& op) static void print_make_op(std::ostream& os, const operation& op)
{ {
auto v = op.to_value(); auto v = op.to_value();
...@@ -804,6 +820,14 @@ static void print_make_op(std::ostream& os, const operation& op) ...@@ -804,6 +820,14 @@ static void print_make_op(std::ostream& os, const operation& op)
os << ")"; os << ")";
} }
static void print_py_shape(std::ostream& os, const migraphx::shape& s)
{
os << "migraphx.shape(" << s.type_string() << ", lens=" << to_json_string(s.lens());
if(not s.standard())
os << ", strides=" << to_json_string(s.strides());
os << ")";
}
static void print_cpp_shape(std::ostream& os, const migraphx::shape& s) static void print_cpp_shape(std::ostream& os, const migraphx::shape& s)
{ {
os << "migraphx::shape{migraphx::shape::" << s.type_string(); os << "migraphx::shape{migraphx::shape::" << s.type_string();
...@@ -813,6 +837,68 @@ static void print_cpp_shape(std::ostream& os, const migraphx::shape& s) ...@@ -813,6 +837,68 @@ static void print_cpp_shape(std::ostream& os, const migraphx::shape& s)
os << "}"; os << "}";
} }
std::unordered_map<instruction_ref, std::string>
module::print_py(std::ostream& os,
const std::string& mname,
std::unordered_map<instruction_ref, std::string> names) const
{
// cppcheck-suppress variableScope
unsigned long seed = names.size();
auto last = std::prev(this->end());
names = this->print(
[&](auto ins, auto ins_names) {
std::vector<std::string> input_vars;
std::transform(ins->inputs().begin(),
ins->inputs().end(),
std::back_inserter(input_vars),
[&](auto input) { return cpp_var_name(ins_names.at(input)); });
if(ins != last)
os << cpp_var_name(ins_names.at(ins)) << " = ";
if(ins->name() == "@literal")
{
os << mname << ".add_literal(";
bool use_abs = false;
ins->get_literal().visit([&](auto v) {
use_abs = std::none_of(v.begin(), v.end(), [](auto x) { return x < 0; });
});
// Disable abs for now
use_abs = false;
if(use_abs)
os << "migraphx.abs_literal(";
os << "migraphx.generate_literal(";
print_py_shape(os, ins->get_shape());
os << ", " << seed << ")";
if(use_abs)
os << ")";
os << ")" << std::endl;
seed++;
}
else if(ins->name() == "@param")
{
std::string name = any_cast<builtin::param>(ins->get_operator()).parameter;
os << mname << ".add_parameter(" << enclose_name(name) << ",";
print_py_shape(os, ins->get_shape());
os << ")" << std::endl;
}
else if(ins->name() == "@return")
{
os << mname << ".add_return([" << join_strings(input_vars, ", ") << "])"
<< std::endl;
}
else
{
assert(ins->name().front() != '@');
os << mname << ".add_instruction(";
print_py_op(os, ins->get_operator());
os << ", [" << join_strings(input_vars, ", ") << "]";
os << ")" << std::endl;
}
},
names);
return names;
}
std::unordered_map<instruction_ref, std::string> std::unordered_map<instruction_ref, std::string>
module::print_cpp(std::ostream& os, module::print_cpp(std::ostream& os,
const std::string& mname, const std::string& mname,
...@@ -874,6 +960,8 @@ module::print_cpp(std::ostream& os, ...@@ -874,6 +960,8 @@ module::print_cpp(std::ostream& os,
return names; return names;
} }
void module::print_py(std::ostream& os) const { this->print_py(os, this->name(), {}); }
void module::print_cpp(std::ostream& os) const { this->print_cpp(os, this->name(), {}); } void module::print_cpp(std::ostream& os) const { this->print_cpp(os, this->name(), {}); }
void module::annotate(std::ostream& os, std::function<void(instruction_ref)> a) const void module::annotate(std::ostream& os, std::function<void(instruction_ref)> a) const
......
...@@ -393,18 +393,31 @@ literal onnx_parser::parse_value(const onnx::AttributeProto& attr) const ...@@ -393,18 +393,31 @@ literal onnx_parser::parse_value(const onnx::AttributeProto& attr) const
literal onnx_parser::parse_tensor(const onnx::TensorProto& t) const literal onnx_parser::parse_tensor(const onnx::TensorProto& t) const
{ {
std::vector<std::size_t> dims(t.dims().begin(), t.dims().end()); std::vector<std::size_t> dims(t.dims().begin(), t.dims().end());
if(not t.external_data().empty()) auto type = get_type(t.data_type());
shape tensor_shape(type, dims);
auto external_data = t.external_data();
if(not external_data.empty())
{ {
const std::string& data_file = t.external_data().at(0).value(); const std::string& data_file = external_data.at(0).value();
auto raw_buffer = read_buffer(path + "/" + data_file); size_t num_data_fields = external_data.size();
size_t offset = 0;
size_t nbytes = tensor_shape.bytes();
if(num_data_fields > 1) // if offset field is present
{
offset = std::stoul(t.external_data().at(1).value());
}
if(num_data_fields > 2) // if nbytes field is present
{
nbytes = std::stoul(t.external_data().at(2).value());
}
auto raw_buffer = read_buffer(path + "/" + data_file, offset, nbytes);
std::string s(raw_buffer.begin(), raw_buffer.end()); std::string s(raw_buffer.begin(), raw_buffer.end());
auto type = get_type(t.data_type());
return create_literal(type, dims, s.data()); return create_literal(type, dims, s.data());
} }
if(t.has_raw_data()) if(t.has_raw_data())
{ {
const std::string& s = t.raw_data(); const std::string& s = t.raw_data();
auto type = get_type(t.data_type());
return create_literal(type, dims, s.data()); return create_literal(type, dims, s.data());
} }
......
...@@ -854,6 +854,25 @@ void program::print_graph(std::ostream& os, bool brief) const ...@@ -854,6 +854,25 @@ void program::print_graph(std::ostream& os, bool brief) const
mm->print_graph(os, brief); mm->print_graph(os, brief);
} }
void program::print_py(std::ostream& os) const
{
auto vec_modules = this->get_modules();
std::unordered_map<instruction_ref, std::string> names;
os << "p = migraphx.program()\n";
for(auto& mod : vec_modules)
{
std::string var_name = "m" + mod->name();
os << var_name << " = ";
if(mod->name() == "main")
os << "p.get_main_module()";
else
os << "p.create_module(\"" << mod->name() << "\");";
os << std::endl;
names = mod->print_py(os, var_name, names);
os << std::endl;
}
}
void program::print_cpp(std::ostream& os) const void program::print_cpp(std::ostream& os) const
{ {
auto vec_modules = this->get_modules(); auto vec_modules = this->get_modules();
......
external_constant_test:¡
v0"Constant*g
value*[B const_tensorj)
locationexternal_constant_test.weightj
offset48j
length24p external_constant_testb
0

B
\ No newline at end of file
...@@ -28,28 +28,37 @@ import numpy as np ...@@ -28,28 +28,37 @@ import numpy as np
import onnx import onnx
from onnx import helper from onnx import helper
from onnx import TensorProto from onnx import TensorProto
from onnx.numpy_helper import from_array
def onnx_test(op_test):
def run_test(): def onnx_test(external_data=False):
op_info = op_test() def create_onnx_test(op_test):
if len(op_info) > 3: def run_test():
graph_def = helper.make_graph(op_info[0], op_info = op_test()
op_test.__name__, if len(op_info) > 3:
op_info[1], graph_def = helper.make_graph(op_info[0],
op_info[2], op_test.__name__,
initializer=op_info[3]) op_info[1],
else: op_info[2],
graph_def = helper.make_graph(op_info[0], op_test.__name__, initializer=op_info[3])
op_info[1], op_info[2]) else:
model_def = helper.make_model(graph_def, graph_def = helper.make_graph(op_info[0], op_test.__name__,
producer_name=op_test.__name__) op_info[1], op_info[2])
onnx.save(model_def, '{}.onnx'.format(op_test.__name__)) model_def = helper.make_model(graph_def,
producer_name=op_test.__name__)
return run_test onnx.save_model(model_def,
'{}.onnx'.format(op_test.__name__),
save_as_external_data=external_data,
@onnx_test location='{}.weight'.format(op_test.__name__),
size_threshold=0,
convert_attribute=True)
return run_test
return create_onnx_test
@onnx_test()
def acos_test(): def acos_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -63,7 +72,7 @@ def acos_test(): ...@@ -63,7 +72,7 @@ def acos_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def acosh_test(): def acosh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -77,7 +86,7 @@ def acosh_test(): ...@@ -77,7 +86,7 @@ def acosh_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def add_bcast_test(): def add_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
...@@ -92,7 +101,7 @@ def add_bcast_test(): ...@@ -92,7 +101,7 @@ def add_bcast_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def add_fp16_test(): def add_fp16_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1])
...@@ -115,7 +124,7 @@ def add_fp16_test(): ...@@ -115,7 +124,7 @@ def add_fp16_test():
]) ])
@onnx_test @onnx_test()
def add_scalar_test(): def add_scalar_test():
x = helper.make_tensor_value_info('0', TensorProto.UINT8, [2, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.UINT8, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.UINT8, []) y = helper.make_tensor_value_info('1', TensorProto.UINT8, [])
...@@ -126,7 +135,7 @@ def add_scalar_test(): ...@@ -126,7 +135,7 @@ def add_scalar_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def argmax_test(): def argmax_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
...@@ -140,7 +149,7 @@ def argmax_test(): ...@@ -140,7 +149,7 @@ def argmax_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def argmax_dyn_test(): def argmax_dyn_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 4, 6])
...@@ -154,7 +163,7 @@ def argmax_dyn_test(): ...@@ -154,7 +163,7 @@ def argmax_dyn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def argmin_test(): def argmin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 5])
...@@ -168,7 +177,7 @@ def argmin_test(): ...@@ -168,7 +177,7 @@ def argmin_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def asin_test(): def asin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -182,7 +191,7 @@ def asin_test(): ...@@ -182,7 +191,7 @@ def asin_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def asinh_test(): def asinh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -196,7 +205,7 @@ def asinh_test(): ...@@ -196,7 +205,7 @@ def asinh_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def atan_test(): def atan_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -210,7 +219,7 @@ def atan_test(): ...@@ -210,7 +219,7 @@ def atan_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def atanh_test(): def atanh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -224,7 +233,7 @@ def atanh_test(): ...@@ -224,7 +233,7 @@ def atanh_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_1d_test(): def averagepool_1d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5])
out = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3]) out = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3])
...@@ -237,7 +246,7 @@ def averagepool_1d_test(): ...@@ -237,7 +246,7 @@ def averagepool_1d_test():
return ([node], [x], [out]) return ([node], [x], [out])
@onnx_test @onnx_test()
def averagepool_3d_test(): def averagepool_3d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5, 5])
out = helper.make_tensor_value_info('1', TensorProto.FLOAT, out = helper.make_tensor_value_info('1', TensorProto.FLOAT,
...@@ -251,7 +260,7 @@ def averagepool_3d_test(): ...@@ -251,7 +260,7 @@ def averagepool_3d_test():
return ([node], [x], [out]) return ([node], [x], [out])
@onnx_test @onnx_test()
def averagepool_dyn_test(): def averagepool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 5, 5, 5]) [None, 3, 5, 5, 5])
...@@ -266,7 +275,7 @@ def averagepool_dyn_test(): ...@@ -266,7 +275,7 @@ def averagepool_dyn_test():
return ([node], [x], [out]) return ([node], [x], [out])
@onnx_test @onnx_test()
def averagepool_dyn_autopad_error_test(): def averagepool_dyn_autopad_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 1, 5, 5])
...@@ -280,7 +289,7 @@ def averagepool_dyn_autopad_error_test(): ...@@ -280,7 +289,7 @@ def averagepool_dyn_autopad_error_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_dyn_asym_padding_error_test(): def averagepool_dyn_asym_padding_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 1, 3, 3])
...@@ -295,7 +304,7 @@ def averagepool_dyn_asym_padding_error_test(): ...@@ -295,7 +304,7 @@ def averagepool_dyn_asym_padding_error_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_dyn_cip_error_test(): def averagepool_dyn_cip_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None, 1, 1, 1])
...@@ -309,7 +318,7 @@ def averagepool_dyn_cip_error_test(): ...@@ -309,7 +318,7 @@ def averagepool_dyn_cip_error_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_notset_test(): def averagepool_notset_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 1, 1])
...@@ -325,7 +334,7 @@ def averagepool_notset_test(): ...@@ -325,7 +334,7 @@ def averagepool_notset_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_nt_cip_test(): def averagepool_nt_cip_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 1, 1])
...@@ -342,7 +351,7 @@ def averagepool_nt_cip_test(): ...@@ -342,7 +351,7 @@ def averagepool_nt_cip_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_same_lower_test(): def averagepool_same_lower_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
...@@ -356,7 +365,7 @@ def averagepool_same_lower_test(): ...@@ -356,7 +365,7 @@ def averagepool_same_lower_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_sl_cip_test(): def averagepool_sl_cip_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
...@@ -371,7 +380,7 @@ def averagepool_sl_cip_test(): ...@@ -371,7 +380,7 @@ def averagepool_sl_cip_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def averagepool_same_upper_test(): def averagepool_same_upper_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
...@@ -385,7 +394,7 @@ def averagepool_same_upper_test(): ...@@ -385,7 +394,7 @@ def averagepool_same_upper_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def batch_norm_flat_test(): def batch_norm_flat_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [1]) scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [1])
...@@ -403,7 +412,7 @@ def batch_norm_flat_test(): ...@@ -403,7 +412,7 @@ def batch_norm_flat_test():
return ([node], [x, scale, bias, mean, var], [out]) return ([node], [x, scale, bias, mean, var], [out])
@onnx_test @onnx_test()
def batch_norm_rank_2_test(): def batch_norm_rank_2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [5]) scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [5])
...@@ -421,7 +430,7 @@ def batch_norm_rank_2_test(): ...@@ -421,7 +430,7 @@ def batch_norm_rank_2_test():
return ([node], [x, scale, bias, mean, var], [out]) return ([node], [x, scale, bias, mean, var], [out])
@onnx_test @onnx_test()
def batch_norm_1d_test(): def batch_norm_1d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [2, 3, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [2, 3, 4])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3]) scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3])
...@@ -438,7 +447,7 @@ def batch_norm_1d_test(): ...@@ -438,7 +447,7 @@ def batch_norm_1d_test():
return ([node], [x, scale, bias, mean, var], [out]) return ([node], [x, scale, bias, mean, var], [out])
@onnx_test @onnx_test()
def batch_norm_2d_test(): def batch_norm_2d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4, 4])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3]) scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3])
...@@ -455,7 +464,7 @@ def batch_norm_2d_test(): ...@@ -455,7 +464,7 @@ def batch_norm_2d_test():
return ([node], [x, scale, bias, mean, var], [out]) return ([node], [x, scale, bias, mean, var], [out])
@onnx_test @onnx_test()
def batch_norm_3d_test(): def batch_norm_3d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, x = helper.make_tensor_value_info('x', TensorProto.FLOAT16,
[2, 2, 2, 2, 2]) [2, 2, 2, 2, 2])
...@@ -475,7 +484,7 @@ def batch_norm_3d_test(): ...@@ -475,7 +484,7 @@ def batch_norm_3d_test():
return ([node], [x, scale, bias, mean, var], [out]) return ([node], [x, scale, bias, mean, var], [out])
@onnx_test @onnx_test()
def batch_norm_invalid_bias_rank_test(): def batch_norm_invalid_bias_rank_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4, 4])
scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3]) scale = helper.make_tensor_value_info('scale', TensorProto.FLOAT, [3])
...@@ -492,7 +501,7 @@ def batch_norm_invalid_bias_rank_test(): ...@@ -492,7 +501,7 @@ def batch_norm_invalid_bias_rank_test():
return ([node], [x, scale, bias, mean, var], [out]) return ([node], [x, scale, bias, mean, var], [out])
@onnx_test @onnx_test()
def binary_dyn_brcst_prelu_test(): def binary_dyn_brcst_prelu_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 4, 5]) [None, 3, 4, 5])
...@@ -509,7 +518,7 @@ def binary_dyn_brcst_prelu_test(): ...@@ -509,7 +518,7 @@ def binary_dyn_brcst_prelu_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def binary_dyn_brcst_add_test(): def binary_dyn_brcst_add_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [4, 5]) arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT,
...@@ -526,7 +535,7 @@ def binary_dyn_brcst_add_test(): ...@@ -526,7 +535,7 @@ def binary_dyn_brcst_add_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def binary_dyn_brcst_attr_error_test(): def binary_dyn_brcst_attr_error_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [4, 5]) arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT,
...@@ -543,7 +552,7 @@ def binary_dyn_brcst_attr_error_test(): ...@@ -543,7 +552,7 @@ def binary_dyn_brcst_attr_error_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def binary_dyn_brcst_mul_test(): def binary_dyn_brcst_mul_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 4, 5]) [None, 3, 4, 5])
...@@ -560,7 +569,7 @@ def binary_dyn_brcst_mul_test(): ...@@ -560,7 +569,7 @@ def binary_dyn_brcst_mul_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def cast_test(): def cast_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -570,7 +579,7 @@ def cast_test(): ...@@ -570,7 +579,7 @@ def cast_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def ceil_test(): def ceil_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -584,7 +593,7 @@ def ceil_test(): ...@@ -584,7 +593,7 @@ def ceil_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def celu_alpha_test(): def celu_alpha_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3])
...@@ -597,7 +606,7 @@ def celu_alpha_test(): ...@@ -597,7 +606,7 @@ def celu_alpha_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def celu_default_test(): def celu_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
...@@ -607,7 +616,7 @@ def celu_default_test(): ...@@ -607,7 +616,7 @@ def celu_default_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def celu_verify_test(): def celu_verify_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
...@@ -620,7 +629,7 @@ def celu_verify_test(): ...@@ -620,7 +629,7 @@ def celu_verify_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def celu_wrong_type_test(): def celu_wrong_type_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [2, 3])
...@@ -630,7 +639,7 @@ def celu_wrong_type_test(): ...@@ -630,7 +639,7 @@ def celu_wrong_type_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def celu_zero_alpha_test(): def celu_zero_alpha_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
...@@ -643,7 +652,7 @@ def celu_zero_alpha_test(): ...@@ -643,7 +652,7 @@ def celu_zero_alpha_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def clip_test(): def clip_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -657,7 +666,7 @@ def clip_test(): ...@@ -657,7 +666,7 @@ def clip_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def clip_test_op11(): def clip_test_op11():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -672,7 +681,7 @@ def clip_test_op11(): ...@@ -672,7 +681,7 @@ def clip_test_op11():
return ([node], [x], [y], [min_val, max_val]) return ([node], [x], [y], [min_val, max_val])
@onnx_test @onnx_test()
def clip_test_op11_max_only(): def clip_test_op11_max_only():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -686,7 +695,7 @@ def clip_test_op11_max_only(): ...@@ -686,7 +695,7 @@ def clip_test_op11_max_only():
return ([node], [x], [y], [max_val]) return ([node], [x], [y], [max_val])
@onnx_test @onnx_test()
def clip_test_op11_min_only(): def clip_test_op11_min_only():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -698,7 +707,7 @@ def clip_test_op11_min_only(): ...@@ -698,7 +707,7 @@ def clip_test_op11_min_only():
return ([node], [x], [y], [min_val]) return ([node], [x], [y], [min_val])
@onnx_test @onnx_test()
def clip_test_op11_no_args(): def clip_test_op11_no_args():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -708,7 +717,7 @@ def clip_test_op11_no_args(): ...@@ -708,7 +717,7 @@ def clip_test_op11_no_args():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def clip_test_op11_no_args1(): def clip_test_op11_no_args1():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -718,7 +727,7 @@ def clip_test_op11_no_args1(): ...@@ -718,7 +727,7 @@ def clip_test_op11_no_args1():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def clip_test_args_type_mismatch(): def clip_test_args_type_mismatch():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 3])
...@@ -734,7 +743,7 @@ def clip_test_args_type_mismatch(): ...@@ -734,7 +743,7 @@ def clip_test_args_type_mismatch():
return ([node], [x], [y], [min_val, max_val]) return ([node], [x], [y], [min_val, max_val])
@onnx_test @onnx_test()
def concat_test(): def concat_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 4, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 4, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7, 4, 3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7, 4, 3])
...@@ -750,7 +759,7 @@ def concat_test(): ...@@ -750,7 +759,7 @@ def concat_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def constant_test(): def constant_test():
x = np.array([0, 1, 2]) x = np.array([0, 1, 2])
y = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
...@@ -770,7 +779,7 @@ def constant_test(): ...@@ -770,7 +779,7 @@ def constant_test():
return ([node], [], [y]) return ([node], [], [y])
@onnx_test @onnx_test()
def constant_fill_test(): def constant_fill_test():
value = helper.make_tensor_value_info('value', TensorProto.FLOAT, [2, 3]) value = helper.make_tensor_value_info('value', TensorProto.FLOAT, [2, 3])
...@@ -787,7 +796,7 @@ def constant_fill_test(): ...@@ -787,7 +796,7 @@ def constant_fill_test():
return ([node], [], [value]) return ([node], [], [value])
@onnx_test @onnx_test()
def constant_fill_input_as_shape_test(): def constant_fill_input_as_shape_test():
np_shape = np.array([2, 3]) np_shape = np.array([2, 3])
value = helper.make_tensor_value_info('value', TensorProto.FLOAT, [2, 3]) value = helper.make_tensor_value_info('value', TensorProto.FLOAT, [2, 3])
...@@ -816,7 +825,7 @@ def constant_fill_input_as_shape_test(): ...@@ -816,7 +825,7 @@ def constant_fill_input_as_shape_test():
return ([const_shape_node, node], [], [value]) return ([const_shape_node, node], [], [value])
@onnx_test @onnx_test()
def constant_scalar_test(): def constant_scalar_test():
x = np.array([1]) x = np.array([1])
y = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1]) y = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1])
...@@ -836,7 +845,7 @@ def constant_scalar_test(): ...@@ -836,7 +845,7 @@ def constant_scalar_test():
return ([node], [], [y]) return ([node], [], [y])
@onnx_test @onnx_test()
def constant_empty_scalar_int64_test(): def constant_empty_scalar_int64_test():
x = np.array([]).astype(np.int64) x = np.array([]).astype(np.int64)
y = helper.make_tensor_value_info('0', TensorProto.INT64, [0]) y = helper.make_tensor_value_info('0', TensorProto.INT64, [0])
...@@ -856,7 +865,7 @@ def constant_empty_scalar_int64_test(): ...@@ -856,7 +865,7 @@ def constant_empty_scalar_int64_test():
return ([node], [], [y]) return ([node], [], [y])
@onnx_test @onnx_test()
def constant_one_val_int64_test(): def constant_one_val_int64_test():
x = np.array([1]).astype(np.int64) x = np.array([1]).astype(np.int64)
y = helper.make_tensor_value_info('0', TensorProto.INT64, [0]) y = helper.make_tensor_value_info('0', TensorProto.INT64, [0])
...@@ -876,7 +885,7 @@ def constant_one_val_int64_test(): ...@@ -876,7 +885,7 @@ def constant_one_val_int64_test():
return ([node], [], [y]) return ([node], [], [y])
@onnx_test @onnx_test()
def const_of_shape_empty_input_test(): def const_of_shape_empty_input_test():
tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.INT64, [1], tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.INT64, [1],
[10]) [10])
...@@ -903,7 +912,7 @@ def const_of_shape_empty_input_test(): ...@@ -903,7 +912,7 @@ def const_of_shape_empty_input_test():
return ([shape_const, node], [], [y]) return ([shape_const, node], [], [y])
@onnx_test @onnx_test()
def const_of_shape_float_test(): def const_of_shape_float_test():
tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.FLOAT, [1], tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.FLOAT, [1],
[10]) [10])
...@@ -930,7 +939,7 @@ def const_of_shape_float_test(): ...@@ -930,7 +939,7 @@ def const_of_shape_float_test():
return ([shape_const, node], [], [y]) return ([shape_const, node], [], [y])
@onnx_test @onnx_test()
def const_of_shape_int64_test(): def const_of_shape_int64_test():
tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.INT64, [1], tensor_val = onnx.helper.make_tensor('value', onnx.TensorProto.INT64, [1],
[10]) [10])
...@@ -955,7 +964,7 @@ def const_of_shape_int64_test(): ...@@ -955,7 +964,7 @@ def const_of_shape_int64_test():
return ([shape_const, node], [], [y]) return ([shape_const, node], [], [y])
@onnx_test @onnx_test()
def const_of_shape_no_value_attr_test(): def const_of_shape_no_value_attr_test():
shape_val = np.array([2, 3, 4]).astype(np.int64) shape_val = np.array([2, 3, 4]).astype(np.int64)
shape_ts = helper.make_tensor(name='shape_tensor', shape_ts = helper.make_tensor(name='shape_tensor',
...@@ -979,7 +988,7 @@ def const_of_shape_no_value_attr_test(): ...@@ -979,7 +988,7 @@ def const_of_shape_no_value_attr_test():
return ([shape_const, node], [], [y]) return ([shape_const, node], [], [y])
@onnx_test @onnx_test()
def conv_1d_test(): def conv_1d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3])
...@@ -990,7 +999,7 @@ def conv_1d_test(): ...@@ -990,7 +999,7 @@ def conv_1d_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_3d_test(): def conv_3d_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5, 5]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3, 3])
...@@ -1002,7 +1011,7 @@ def conv_3d_test(): ...@@ -1002,7 +1011,7 @@ def conv_3d_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_attr_fail_test(): def conv_attr_fail_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3])
...@@ -1016,7 +1025,7 @@ def conv_attr_fail_test(): ...@@ -1016,7 +1025,7 @@ def conv_attr_fail_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_autopad_fail_test(): def conv_autopad_fail_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
...@@ -1033,7 +1042,7 @@ def conv_autopad_fail_test(): ...@@ -1033,7 +1042,7 @@ def conv_autopad_fail_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_autopad_same_test(): def conv_autopad_same_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3])
...@@ -1049,7 +1058,7 @@ def conv_autopad_same_test(): ...@@ -1049,7 +1058,7 @@ def conv_autopad_same_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_bias_test(): def conv_bias_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 5, 5])
...@@ -1065,7 +1074,7 @@ def conv_bias_test(): ...@@ -1065,7 +1074,7 @@ def conv_bias_test():
return ([node], [x, y, z], [out]) return ([node], [x, y, z], [out])
@onnx_test @onnx_test()
def conv_bn_relu_maxpool_test(): def conv_bn_relu_maxpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 5, 5])
...@@ -1101,7 +1110,7 @@ def conv_bn_relu_maxpool_test(): ...@@ -1101,7 +1110,7 @@ def conv_bn_relu_maxpool_test():
return ([node0, node1, node2, node3], [x, y, z, m, n, k, l], [out]) return ([node0, node1, node2, node3], [x, y, z, m, n, k, l], [out])
@onnx_test @onnx_test()
def conv_dynamic_batch_test(): def conv_dynamic_batch_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 5, 5]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3])
...@@ -1112,7 +1121,7 @@ def conv_dynamic_batch_test(): ...@@ -1112,7 +1121,7 @@ def conv_dynamic_batch_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_dynamic_img_test(): def conv_dynamic_img_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None]) [1, 3, None, None])
...@@ -1124,7 +1133,7 @@ def conv_dynamic_img_test(): ...@@ -1124,7 +1133,7 @@ def conv_dynamic_img_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_dynamic_weights_test(): def conv_dynamic_weights_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, y = helper.make_tensor_value_info('1', TensorProto.FLOAT,
...@@ -1136,7 +1145,7 @@ def conv_dynamic_weights_test(): ...@@ -1136,7 +1145,7 @@ def conv_dynamic_weights_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_dynamic_img_and_weights_test(): def conv_dynamic_img_and_weights_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None]) [1, 3, None, None])
...@@ -1149,7 +1158,7 @@ def conv_dynamic_img_and_weights_test(): ...@@ -1149,7 +1158,7 @@ def conv_dynamic_img_and_weights_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_dynamic_batch_same_upper_test(): def conv_dynamic_batch_same_upper_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 5, 5]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 3, 3])
...@@ -1162,7 +1171,7 @@ def conv_dynamic_batch_same_upper_test(): ...@@ -1162,7 +1171,7 @@ def conv_dynamic_batch_same_upper_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_dynamic_img_same_upper_test(): def conv_dynamic_img_same_upper_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None]) [1, 3, None, None])
...@@ -1177,7 +1186,7 @@ def conv_dynamic_img_same_upper_test(): ...@@ -1177,7 +1186,7 @@ def conv_dynamic_img_same_upper_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_dynamic_kernel_same_lower_test(): def conv_dynamic_kernel_same_lower_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, y = helper.make_tensor_value_info('1', TensorProto.FLOAT,
...@@ -1191,7 +1200,7 @@ def conv_dynamic_kernel_same_lower_test(): ...@@ -1191,7 +1200,7 @@ def conv_dynamic_kernel_same_lower_test():
return ([node], [x, y], [out]) return ([node], [x, y], [out])
@onnx_test @onnx_test()
def conv_relu_maxpool_test(): def conv_relu_maxpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 5, 5])
...@@ -1217,7 +1226,7 @@ def conv_relu_maxpool_test(): ...@@ -1217,7 +1226,7 @@ def conv_relu_maxpool_test():
return ([node1, node2, node3], [x, y, z], [out]) return ([node1, node2, node3], [x, y, z], [out])
@onnx_test @onnx_test()
def conv_relu_maxpool_x2_test(): def conv_relu_maxpool_x2_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 32, 32]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [5, 3, 5, 5])
...@@ -1261,7 +1270,7 @@ def conv_relu_maxpool_x2_test(): ...@@ -1261,7 +1270,7 @@ def conv_relu_maxpool_x2_test():
return ([node1, node2, node3, node4, node5, node6], [x, y, z, m, n], [out]) return ([node1, node2, node3, node4, node5, node6], [x, y, z, m, n], [out])
@onnx_test @onnx_test()
def convinteger_bias_test(): def convinteger_bias_test():
x = helper.make_tensor_value_info('0', TensorProto.INT8, [1, 3, 32, 32]) 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]) y = helper.make_tensor_value_info('1', TensorProto.INT8, [1, 3, 5, 5])
...@@ -1277,7 +1286,7 @@ def convinteger_bias_test(): ...@@ -1277,7 +1286,7 @@ def convinteger_bias_test():
return ([node], [x, y, z], [out]) return ([node], [x, y, z], [out])
@onnx_test @onnx_test()
def cos_test(): def cos_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -1291,7 +1300,7 @@ def cos_test(): ...@@ -1291,7 +1300,7 @@ def cos_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def cosh_test(): def cosh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1])
...@@ -1305,7 +1314,7 @@ def cosh_test(): ...@@ -1305,7 +1314,7 @@ def cosh_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def deconv_test(): def deconv_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 1, 3, 3])
...@@ -1319,7 +1328,7 @@ def deconv_test(): ...@@ -1319,7 +1328,7 @@ def deconv_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_bias_test(): def deconv_bias_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 1, 3, 3])
...@@ -1334,7 +1343,7 @@ def deconv_bias_test(): ...@@ -1334,7 +1343,7 @@ def deconv_bias_test():
return ([node], [x, w, b], [y]) return ([node], [x, w, b], [y])
@onnx_test @onnx_test()
def deconv_input_pads_strides_test(): def deconv_input_pads_strides_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
...@@ -1349,7 +1358,7 @@ def deconv_input_pads_strides_test(): ...@@ -1349,7 +1358,7 @@ def deconv_input_pads_strides_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_input_pads_asymm_test(): def deconv_input_pads_asymm_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
...@@ -1364,7 +1373,7 @@ def deconv_input_pads_asymm_test(): ...@@ -1364,7 +1373,7 @@ def deconv_input_pads_asymm_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_input_pads_asymm_1d_test(): def deconv_input_pads_asymm_1d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3])
w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3])
...@@ -1380,7 +1389,7 @@ def deconv_input_pads_asymm_1d_test(): ...@@ -1380,7 +1389,7 @@ def deconv_input_pads_asymm_1d_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_output_padding_test(): def deconv_output_padding_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
...@@ -1395,7 +1404,7 @@ def deconv_output_padding_test(): ...@@ -1395,7 +1404,7 @@ def deconv_output_padding_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_output_padding_3d_test(): def deconv_output_padding_3d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3, 3])
...@@ -1410,7 +1419,7 @@ def deconv_output_padding_3d_test(): ...@@ -1410,7 +1419,7 @@ def deconv_output_padding_3d_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_output_shape_test(): def deconv_output_shape_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
...@@ -1425,7 +1434,7 @@ def deconv_output_shape_test(): ...@@ -1425,7 +1434,7 @@ def deconv_output_shape_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_output_shape_3d_test(): def deconv_output_shape_3d_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3, 3])
...@@ -1440,7 +1449,7 @@ def deconv_output_shape_3d_test(): ...@@ -1440,7 +1449,7 @@ def deconv_output_shape_3d_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def deconv_stride_test(): def deconv_stride_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 3, 3]) 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]) w = helper.make_tensor_value_info('w', TensorProto.FLOAT, [1, 2, 3, 3])
...@@ -1454,7 +1463,7 @@ def deconv_stride_test(): ...@@ -1454,7 +1463,7 @@ def deconv_stride_test():
return ([node], [x, w], [y]) return ([node], [x, w], [y])
@onnx_test @onnx_test()
def depthtospace_test(): def depthtospace_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 8, 5, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 8, 5, 5])
...@@ -1469,7 +1478,7 @@ def depthtospace_test(): ...@@ -1469,7 +1478,7 @@ def depthtospace_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def depthtospace_simple_test(): def depthtospace_simple_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 8, 2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 8, 2, 3])
...@@ -1484,7 +1493,7 @@ def depthtospace_simple_test(): ...@@ -1484,7 +1493,7 @@ def depthtospace_simple_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def depthtospace_crd_test(): def depthtospace_crd_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 8, 5, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 8, 5, 5])
...@@ -1499,7 +1508,7 @@ def depthtospace_crd_test(): ...@@ -1499,7 +1508,7 @@ def depthtospace_crd_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def spacetodepth_test(): def spacetodepth_test():
x = helper.make_tensor_value_info('x', TensorProto.float, [2, 2, 10, 10]) x = helper.make_tensor_value_info('x', TensorProto.float, [2, 2, 10, 10])
...@@ -1513,7 +1522,7 @@ def spacetodepth_test(): ...@@ -1513,7 +1522,7 @@ def spacetodepth_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def spacetodepth_simple_test(): def spacetodepth_simple_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 4, 6]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 4, 6])
...@@ -1527,7 +1536,7 @@ def spacetodepth_simple_test(): ...@@ -1527,7 +1536,7 @@ def spacetodepth_simple_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def spacetodepth_invalid_blocksize_test(): def spacetodepth_invalid_blocksize_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 4, 6]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 4, 6])
...@@ -1541,7 +1550,7 @@ def spacetodepth_invalid_blocksize_test(): ...@@ -1541,7 +1550,7 @@ def spacetodepth_invalid_blocksize_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def spacetodepth_nondivisibility_test(): def spacetodepth_nondivisibility_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 5, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 2, 5, 5])
...@@ -1555,7 +1564,7 @@ def spacetodepth_nondivisibility_test(): ...@@ -1555,7 +1564,7 @@ def spacetodepth_nondivisibility_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def dequantizelinear_test(): def dequantizelinear_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT8, [5]) arg0 = helper.make_tensor_value_info('0', TensorProto.INT8, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
...@@ -1570,7 +1579,7 @@ def dequantizelinear_test(): ...@@ -1570,7 +1579,7 @@ def dequantizelinear_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def dequantizelinear_zero_point_test(): def dequantizelinear_zero_point_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT8, [5]) arg0 = helper.make_tensor_value_info('0', TensorProto.INT8, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
...@@ -1601,17 +1610,17 @@ def make_dequantizelinear_axis_graph(axis): ...@@ -1601,17 +1610,17 @@ def make_dequantizelinear_axis_graph(axis):
return ([node], [arg0, arg1, arg2], [arg_out]) return ([node], [arg0, arg1, arg2], [arg_out])
@onnx_test @onnx_test()
def dequantizelinear_axis_test(): def dequantizelinear_axis_test():
return make_dequantizelinear_axis_graph(2) return make_dequantizelinear_axis_graph(2)
@onnx_test @onnx_test()
def dequantizelinear_neg_axis_test(): def dequantizelinear_neg_axis_test():
return make_dequantizelinear_axis_graph(-2) return make_dequantizelinear_axis_graph(-2)
@onnx_test @onnx_test()
def dropout_test(): def dropout_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 2, 2]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 2, 2])
...@@ -1625,7 +1634,7 @@ def dropout_test(): ...@@ -1625,7 +1634,7 @@ def dropout_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def elu_test(): def elu_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -1638,7 +1647,7 @@ def elu_test(): ...@@ -1638,7 +1647,7 @@ def elu_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def embedding_bag_test(): def embedding_bag_test():
index_val = np.array([1, 0, 2]) index_val = np.array([1, 0, 2])
...@@ -1691,7 +1700,7 @@ def embedding_bag_test(): ...@@ -1691,7 +1700,7 @@ def embedding_bag_test():
return ([index, offset, node1, node2, node3], [weight], [y1, y2, y3]) return ([index, offset, node1, node2, node3], [weight], [y1, y2, y3])
@onnx_test @onnx_test()
def embedding_bag_offset_test(): def embedding_bag_offset_test():
index_val = np.array([1, 0]) index_val = np.array([1, 0])
...@@ -1730,7 +1739,7 @@ def embedding_bag_offset_test(): ...@@ -1730,7 +1739,7 @@ def embedding_bag_offset_test():
return ([index, offset, node], [weight], [y]) return ([index, offset, node], [weight], [y])
@onnx_test @onnx_test()
def equal_test(): def equal_test():
ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0]) ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
x1 = helper.make_tensor("x1", x1 = helper.make_tensor("x1",
...@@ -1750,7 +1759,7 @@ def equal_test(): ...@@ -1750,7 +1759,7 @@ def equal_test():
return ([node], [x2], [y], [x1]) return ([node], [x2], [y], [x1])
@onnx_test @onnx_test()
def equal_bool_test(): def equal_bool_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3]) x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3])
...@@ -1768,7 +1777,7 @@ def equal_bool_test(): ...@@ -1768,7 +1777,7 @@ def equal_bool_test():
return ([node1, node2], [x1, x2], [y]) return ([node1, node2], [x1, x2], [y])
@onnx_test @onnx_test()
def erf_test(): def erf_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10, 15]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10, 15])
...@@ -1782,7 +1791,7 @@ def erf_test(): ...@@ -1782,7 +1791,7 @@ def erf_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def exp_test(): def exp_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -1796,7 +1805,7 @@ def exp_test(): ...@@ -1796,7 +1805,7 @@ def exp_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def expand_test(): def expand_test():
shape_val = np.array([2, 3, 4, 5]).astype(np.int64) shape_val = np.array([2, 3, 4, 5]).astype(np.int64)
shape_ts = helper.make_tensor(name='shape_tensor', shape_ts = helper.make_tensor(name='shape_tensor',
...@@ -1819,7 +1828,23 @@ def expand_test(): ...@@ -1819,7 +1828,23 @@ def expand_test():
return ([shape_const, node], [x], [y]) 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(): def eyelike_default_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
...@@ -1832,7 +1857,7 @@ def eyelike_default_test(): ...@@ -1832,7 +1857,7 @@ def eyelike_default_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_double_test(): def eyelike_double_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.DOUBLE, [6, 15]) T1 = helper.make_tensor_value_info('T1', TensorProto.DOUBLE, [6, 15])
T2 = helper.make_tensor_value_info('T2', TensorProto.DOUBLE, [6, 15]) T2 = helper.make_tensor_value_info('T2', TensorProto.DOUBLE, [6, 15])
...@@ -1845,7 +1870,7 @@ def eyelike_double_test(): ...@@ -1845,7 +1870,7 @@ def eyelike_double_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_half_test(): def eyelike_half_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT16, [8, 8]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT16, [8, 8])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT16, [8, 8]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT16, [8, 8])
...@@ -1858,7 +1883,7 @@ def eyelike_half_test(): ...@@ -1858,7 +1883,7 @@ def eyelike_half_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_k_test(): def eyelike_k_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
...@@ -1866,7 +1891,7 @@ def eyelike_k_test(): ...@@ -1866,7 +1891,7 @@ def eyelike_k_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_k_outofbounds_neg_test(): def eyelike_k_outofbounds_neg_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [2, 4]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [2, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [2, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [2, 4])
...@@ -1877,7 +1902,7 @@ def eyelike_k_outofbounds_neg_test(): ...@@ -1877,7 +1902,7 @@ def eyelike_k_outofbounds_neg_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_k_outofbounds_pos_test(): def eyelike_k_outofbounds_pos_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
...@@ -1885,7 +1910,7 @@ def eyelike_k_outofbounds_pos_test(): ...@@ -1885,7 +1910,7 @@ def eyelike_k_outofbounds_pos_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_not_rank2_test(): def eyelike_not_rank2_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4, 2]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4, 2])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
...@@ -1897,7 +1922,7 @@ def eyelike_not_rank2_test(): ...@@ -1897,7 +1922,7 @@ def eyelike_not_rank2_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_verify_test(): def eyelike_verify_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
...@@ -1905,7 +1930,7 @@ def eyelike_verify_test(): ...@@ -1905,7 +1930,7 @@ def eyelike_verify_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_verify_negk_test(): def eyelike_verify_negk_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.FLOAT, [3, 4])
...@@ -1916,7 +1941,7 @@ def eyelike_verify_negk_test(): ...@@ -1916,7 +1941,7 @@ def eyelike_verify_negk_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def eyelike_set_dtype_test(): def eyelike_set_dtype_test():
T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4]) T1 = helper.make_tensor_value_info('T1', TensorProto.FLOAT, [3, 4])
T2 = helper.make_tensor_value_info('T2', TensorProto.DOUBLE, [3, 4]) T2 = helper.make_tensor_value_info('T2', TensorProto.DOUBLE, [3, 4])
...@@ -1927,7 +1952,7 @@ def eyelike_set_dtype_test(): ...@@ -1927,7 +1952,7 @@ def eyelike_set_dtype_test():
return ([node], [T1], [T2]) return ([node], [T1], [T2])
@onnx_test @onnx_test()
def flatten_test(): def flatten_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [6, 20]) y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [6, 20])
...@@ -1943,7 +1968,7 @@ def flatten_test(): ...@@ -1943,7 +1968,7 @@ def flatten_test():
return ([node, node2], [x], [y, y2]) return ([node, node2], [x], [y, y2])
@onnx_test @onnx_test()
def flatten_nonstd_test(): def flatten_nonstd_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 5, 4]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 5, 4])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [6, 20]) y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [6, 20])
...@@ -1966,7 +1991,7 @@ def flatten_nonstd_test(): ...@@ -1966,7 +1991,7 @@ def flatten_nonstd_test():
return ([trans, node, node2], [x], [y, y2]) return ([trans, node, node2], [x], [y, y2])
@onnx_test @onnx_test()
def flatten_dyn_test(): def flatten_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 4, 5])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [None, 20]) y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [None, 20])
...@@ -1979,7 +2004,7 @@ def flatten_dyn_test(): ...@@ -1979,7 +2004,7 @@ def flatten_dyn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def floor_test(): def floor_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -1993,7 +2018,7 @@ def floor_test(): ...@@ -1993,7 +2018,7 @@ def floor_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def gather_test(): def gather_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, i = helper.make_tensor_value_info('indices', TensorProto.INT32,
...@@ -2010,7 +2035,7 @@ def gather_test(): ...@@ -2010,7 +2035,7 @@ def gather_test():
return ([node], [x, i], [y]) return ([node], [x, i], [y])
@onnx_test @onnx_test()
def gather_elements_axis0_test(): def gather_elements_axis0_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, [2, 3]) i = helper.make_tensor_value_info('indices', TensorProto.INT32, [2, 3])
...@@ -2026,7 +2051,7 @@ def gather_elements_axis0_test(): ...@@ -2026,7 +2051,7 @@ def gather_elements_axis0_test():
return ([node], [x, i], [y]) return ([node], [x, i], [y])
@onnx_test @onnx_test()
def gather_elements_axis1_test(): def gather_elements_axis1_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, [2, 3]) i = helper.make_tensor_value_info('indices', TensorProto.INT32, [2, 3])
...@@ -2042,7 +2067,7 @@ def gather_elements_axis1_test(): ...@@ -2042,7 +2067,7 @@ def gather_elements_axis1_test():
return ([node], [x, i], [y]) return ([node], [x, i], [y])
@onnx_test @onnx_test()
def gathernd_test(): def gathernd_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2])
i = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 2]) i = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 2])
...@@ -2055,7 +2080,7 @@ def gathernd_test(): ...@@ -2055,7 +2080,7 @@ def gathernd_test():
return ([node], [x, i], [y]) return ([node], [x, i], [y])
@onnx_test @onnx_test()
def gathernd_batch_dims_test(): def gathernd_batch_dims_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
i = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 1]) i = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 1])
...@@ -2071,7 +2096,7 @@ def gathernd_batch_dims_test(): ...@@ -2071,7 +2096,7 @@ def gathernd_batch_dims_test():
return ([node], [x, i], [y]) return ([node], [x, i], [y])
@onnx_test @onnx_test()
def gemm_test(): def gemm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5, 7]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5, 7])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [11, 5]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [11, 5])
...@@ -2089,7 +2114,7 @@ def gemm_test(): ...@@ -2089,7 +2114,7 @@ def gemm_test():
return ([node], [x, y, z], [a]) return ([node], [x, y, z], [a])
@onnx_test @onnx_test()
def gemm_ex_test(): def gemm_ex_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 1, 8, 6]) 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]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [1, 1, 8, 7])
...@@ -2106,7 +2131,7 @@ def gemm_ex_test(): ...@@ -2106,7 +2131,7 @@ def gemm_ex_test():
return ([node], [m1, m2, m3], [y]) return ([node], [m1, m2, m3], [y])
@onnx_test @onnx_test()
def gemm_ex_brcst_test(): def gemm_ex_brcst_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 1, 5, 6]) 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]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [1, 1, 5, 7])
...@@ -2123,7 +2148,7 @@ def gemm_ex_brcst_test(): ...@@ -2123,7 +2148,7 @@ def gemm_ex_brcst_test():
return ([node], [m1, m2, m3], [y]) return ([node], [m1, m2, m3], [y])
@onnx_test @onnx_test()
def gemm_half_test(): def gemm_half_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1, 1, 8, 6]) 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]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT16, [1, 1, 8, 7])
...@@ -2140,7 +2165,7 @@ def gemm_half_test(): ...@@ -2140,7 +2165,7 @@ def gemm_half_test():
return ([node], [m1, m2, m3], [y]) return ([node], [m1, m2, m3], [y])
@onnx_test @onnx_test()
def globalavgpool_test(): def globalavgpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
...@@ -2154,7 +2179,7 @@ def globalavgpool_test(): ...@@ -2154,7 +2179,7 @@ def globalavgpool_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def globalavgpool_dyn_test(): def globalavgpool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 16, 16]) [None, 3, 16, 16])
...@@ -2169,7 +2194,7 @@ def globalavgpool_dyn_test(): ...@@ -2169,7 +2194,7 @@ def globalavgpool_dyn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def globallppool_test(): def globallppool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
...@@ -2183,7 +2208,7 @@ def globallppool_test(): ...@@ -2183,7 +2208,7 @@ def globallppool_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def globallppool_dyn_test(): def globallppool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, None, None]) [1, 3, None, None])
...@@ -2198,7 +2223,7 @@ def globallppool_dyn_test(): ...@@ -2198,7 +2223,7 @@ def globallppool_dyn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def globalmaxpool_test(): def globalmaxpool_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 1, 1])
...@@ -2212,7 +2237,7 @@ def globalmaxpool_test(): ...@@ -2212,7 +2237,7 @@ def globalmaxpool_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def globalmaxpool_dyn_test(): def globalmaxpool_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 32, 32]) [None, 3, 32, 32])
...@@ -2227,7 +2252,7 @@ def globalmaxpool_dyn_test(): ...@@ -2227,7 +2252,7 @@ def globalmaxpool_dyn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def greater_test(): def greater_test():
ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0]) ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
x1 = helper.make_tensor("x1", x1 = helper.make_tensor("x1",
...@@ -2247,7 +2272,7 @@ def greater_test(): ...@@ -2247,7 +2272,7 @@ def greater_test():
return ([node], [x2], [y], [x1]) return ([node], [x2], [y], [x1])
@onnx_test @onnx_test()
def greater_bool_test(): def greater_bool_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3]) x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3])
...@@ -2265,7 +2290,7 @@ def greater_bool_test(): ...@@ -2265,7 +2290,7 @@ def greater_bool_test():
return ([node1, node2], [x1, x2], [y]) return ([node1, node2], [x1, x2], [y])
@onnx_test @onnx_test()
def greaterorequal_test(): def greaterorequal_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [3]) x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [3])
...@@ -2281,7 +2306,7 @@ def greaterorequal_test(): ...@@ -2281,7 +2306,7 @@ def greaterorequal_test():
return ([node], [x1, x2], [y]) return ([node], [x1, x2], [y])
@onnx_test @onnx_test()
def group_conv_test(): def group_conv_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 4, 16, 16]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 1, 3, 3])
...@@ -2297,7 +2322,7 @@ def group_conv_test(): ...@@ -2297,7 +2322,7 @@ def group_conv_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def hardsigmoid_default_test(): def hardsigmoid_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 4, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 4, 5])
...@@ -2307,7 +2332,7 @@ def hardsigmoid_default_test(): ...@@ -2307,7 +2332,7 @@ def hardsigmoid_default_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def hardsigmoid_double_test(): def hardsigmoid_double_test():
x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [1, 3, 4, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [1, 3, 4, 5])
...@@ -2321,7 +2346,7 @@ def hardsigmoid_double_test(): ...@@ -2321,7 +2346,7 @@ def hardsigmoid_double_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def hardsigmoid_half_test(): def hardsigmoid_half_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [1, 3, 4, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [1, 3, 4, 5])
...@@ -2331,7 +2356,7 @@ def hardsigmoid_half_test(): ...@@ -2331,7 +2356,7 @@ def hardsigmoid_half_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def hardsigmoid_verify_test(): def hardsigmoid_verify_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 5]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 5])
...@@ -2341,7 +2366,7 @@ def hardsigmoid_verify_test(): ...@@ -2341,7 +2366,7 @@ def hardsigmoid_verify_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def hardswish_test(): def hardswish_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 5]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 5])
...@@ -2351,7 +2376,7 @@ def hardswish_test(): ...@@ -2351,7 +2376,7 @@ def hardswish_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def if_else_test(): def if_else_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [2, 3]) 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]) y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [2, 3])
...@@ -2405,7 +2430,7 @@ def if_else_test(): ...@@ -2405,7 +2430,7 @@ def if_else_test():
return ([node], [x, y], [res], [cond_tensor, xt_tensor, yt_tensor]) return ([node], [x, y], [res], [cond_tensor, xt_tensor, yt_tensor])
@onnx_test @onnx_test()
def if_literal_test(): def if_literal_test():
then_out = onnx.helper.make_tensor_value_info('then_out', then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT, [5]) onnx.TensorProto.FLOAT, [5])
...@@ -2453,7 +2478,7 @@ def if_literal_test(): ...@@ -2453,7 +2478,7 @@ def if_literal_test():
return ([node], [cond_input], [ret]) return ([node], [cond_input], [ret])
@onnx_test @onnx_test()
def if_param_excp_test(): def if_param_excp_test():
then_out = onnx.helper.make_tensor_value_info('then_out', then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT, onnx.TensorProto.FLOAT,
...@@ -2505,7 +2530,7 @@ def if_param_excp_test(): ...@@ -2505,7 +2530,7 @@ def if_param_excp_test():
return ([node], [cond_input, x, y], [ret]) return ([node], [cond_input, x, y], [ret])
@onnx_test @onnx_test()
def if_param_excp1_test(): def if_param_excp1_test():
then_out = onnx.helper.make_tensor_value_info('sub_out', then_out = onnx.helper.make_tensor_value_info('sub_out',
onnx.TensorProto.FLOAT, onnx.TensorProto.FLOAT,
...@@ -2540,7 +2565,7 @@ def if_param_excp1_test(): ...@@ -2540,7 +2565,7 @@ def if_param_excp1_test():
return ([node], [cond_input, x], [ret]) return ([node], [cond_input, x], [ret])
@onnx_test @onnx_test()
def if_param_test(): def if_param_test():
then_out = onnx.helper.make_tensor_value_info('then_out', then_out = onnx.helper.make_tensor_value_info('then_out',
onnx.TensorProto.FLOAT, onnx.TensorProto.FLOAT,
...@@ -2592,7 +2617,7 @@ def if_param_test(): ...@@ -2592,7 +2617,7 @@ def if_param_test():
return ([node], [cond_input, x, y], [ret]) return ([node], [cond_input, x, y], [ret])
@onnx_test @onnx_test()
def if_pl_test(): def if_pl_test():
out_x = onnx.helper.make_tensor_value_info('out_x', onnx.TensorProto.FLOAT, out_x = onnx.helper.make_tensor_value_info('out_x', onnx.TensorProto.FLOAT,
[2, 3]) [2, 3])
...@@ -2660,7 +2685,7 @@ def if_pl_test(): ...@@ -2660,7 +2685,7 @@ def if_pl_test():
return ([node], [cond_input, x, y], [ret], [xt_tensor, yt_tensor]) return ([node], [cond_input, x, y], [ret], [xt_tensor, yt_tensor])
@onnx_test @onnx_test()
def if_then_test(): def if_then_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [2, 3]) 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]) y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [2, 3])
...@@ -2714,7 +2739,7 @@ def if_then_test(): ...@@ -2714,7 +2739,7 @@ def if_then_test():
return ([node], [x, y], [res], [cond_tensor, xt_tensor, yt_tensor]) return ([node], [x, y], [res], [cond_tensor, xt_tensor, yt_tensor])
@onnx_test @onnx_test()
def if_tuple_test(): def if_tuple_test():
x = onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, [1, 4]) 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]) y = onnx.helper.make_tensor_value_info('y', onnx.TensorProto.FLOAT, [3, 4])
...@@ -2785,7 +2810,7 @@ def if_tuple_test(): ...@@ -2785,7 +2810,7 @@ def if_tuple_test():
y], [res0, res1], [one_tensor, two_tensor, three_tensor]) y], [res0, res1], [one_tensor, two_tensor, three_tensor])
@onnx_test @onnx_test()
def imagescaler_test(): def imagescaler_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 16, 16]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 16, 16])
...@@ -2799,7 +2824,7 @@ def imagescaler_test(): ...@@ -2799,7 +2824,7 @@ def imagescaler_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def imagescaler_half_test(): def imagescaler_half_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1, 3, 16, 16]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1, 3, 16, 16])
...@@ -2813,7 +2838,7 @@ def imagescaler_half_test(): ...@@ -2813,7 +2838,7 @@ def imagescaler_half_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def implicit_add_bcast_test(): def implicit_add_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4, 1])
...@@ -2828,7 +2853,7 @@ def implicit_add_bcast_test(): ...@@ -2828,7 +2853,7 @@ def implicit_add_bcast_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def implicit_pow_bcast_test(): def implicit_pow_bcast_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) 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]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4, 1])
...@@ -2844,7 +2869,7 @@ def implicit_pow_bcast_test(): ...@@ -2844,7 +2869,7 @@ def implicit_pow_bcast_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def implicit_sub_bcast_test(): def implicit_sub_bcast_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.UINT64, [2, 3, 4, 5]) arg0 = helper.make_tensor_value_info('0', TensorProto.UINT64, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.UINT64, [4, 5]) arg1 = helper.make_tensor_value_info('1', TensorProto.UINT64, [4, 5])
...@@ -2860,7 +2885,7 @@ def implicit_sub_bcast_test(): ...@@ -2860,7 +2885,7 @@ def implicit_sub_bcast_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def initializer_not_an_input(): def initializer_not_an_input():
values = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) values = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
w = helper.make_tensor(name='w', w = helper.make_tensor(name='w',
...@@ -2880,7 +2905,7 @@ def initializer_not_an_input(): ...@@ -2880,7 +2905,7 @@ def initializer_not_an_input():
return ([node], [x], [y], [w]) return ([node], [x], [y], [w])
@onnx_test @onnx_test()
def instance_norm_test(): def instance_norm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2]) scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2])
...@@ -2894,7 +2919,7 @@ def instance_norm_test(): ...@@ -2894,7 +2919,7 @@ def instance_norm_test():
return ([node], [x, scale, bias], [y]) return ([node], [x, scale, bias], [y])
@onnx_test @onnx_test()
def instance_norm_half_test(): def instance_norm_half_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1, 2, 3, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [2]) scale = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [2])
...@@ -2908,7 +2933,7 @@ def instance_norm_half_test(): ...@@ -2908,7 +2933,7 @@ def instance_norm_half_test():
return ([node], [x, scale, bias], [y]) return ([node], [x, scale, bias], [y])
@onnx_test @onnx_test()
def instance_norm_type_mismatch_test(): def instance_norm_type_mismatch_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [2]) scale = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [2])
...@@ -2922,7 +2947,7 @@ def instance_norm_type_mismatch_test(): ...@@ -2922,7 +2947,7 @@ def instance_norm_type_mismatch_test():
return ([node], [x, scale, bias], [y]) return ([node], [x, scale, bias], [y])
@onnx_test @onnx_test()
def instance_norm_invalid_type_test(): def instance_norm_invalid_type_test():
x = helper.make_tensor_value_info('0', TensorProto.INT32, [1, 2, 3, 3]) x = helper.make_tensor_value_info('0', TensorProto.INT32, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2]) scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2])
...@@ -2936,7 +2961,7 @@ def instance_norm_invalid_type_test(): ...@@ -2936,7 +2961,7 @@ def instance_norm_invalid_type_test():
return ([node], [x, scale, bias], [y]) return ([node], [x, scale, bias], [y])
@onnx_test @onnx_test()
def instance_norm_nonbroadcastable_test(): def instance_norm_nonbroadcastable_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3, 3])
scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4]) scale = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4])
...@@ -2950,7 +2975,7 @@ def instance_norm_nonbroadcastable_test(): ...@@ -2950,7 +2975,7 @@ def instance_norm_nonbroadcastable_test():
return ([node], [x, scale, bias], [y]) return ([node], [x, scale, bias], [y])
@onnx_test @onnx_test()
def instance_norm_val_test(): def instance_norm_val_test():
x = np.array([[[[0, 1, 2], [3, 4, 5], [6, 7, 8]], x = np.array([[[[0, 1, 2], [3, 4, 5], [6, 7, 8]],
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]]]) [[0, 1, 2], [3, 4, 5], [6, 7, 8]]]])
...@@ -2980,7 +3005,7 @@ def instance_norm_val_test(): ...@@ -2980,7 +3005,7 @@ def instance_norm_val_test():
return ([node], [], [y], [x_tensor, scale_tensor, bias_tensor]) return ([node], [], [y], [x_tensor, scale_tensor, bias_tensor])
@onnx_test @onnx_test()
def instance_norm_val_3d_test(): def instance_norm_val_3d_test():
x = np.array([[[[[0, 1], [2, 3]], [[4, 5], [6, 7]]], x = np.array([[[[[0, 1], [2, 3]], [[4, 5], [6, 7]]],
[[[0, 1], [2, 3]], [[4, 5], [6, 7]]]]]) [[[0, 1], [2, 3]], [[4, 5], [6, 7]]]]])
...@@ -3010,7 +3035,7 @@ def instance_norm_val_3d_test(): ...@@ -3010,7 +3035,7 @@ def instance_norm_val_3d_test():
return ([node], [], [y], [x_tensor, scale_tensor, bias_tensor]) return ([node], [], [y], [x_tensor, scale_tensor, bias_tensor])
@onnx_test @onnx_test()
def isnan_float_test(): def isnan_float_test():
t1 = helper.make_tensor_value_info('t1', TensorProto.FLOAT, [2, 3]) t1 = helper.make_tensor_value_info('t1', TensorProto.FLOAT, [2, 3])
t2 = helper.make_tensor_value_info('t2', TensorProto.FLOAT, [2, 3]) t2 = helper.make_tensor_value_info('t2', TensorProto.FLOAT, [2, 3])
...@@ -3023,7 +3048,7 @@ def isnan_float_test(): ...@@ -3023,7 +3048,7 @@ def isnan_float_test():
return ([node], [t1], [t2]) return ([node], [t1], [t2])
@onnx_test @onnx_test()
def isnan_half_test(): def isnan_half_test():
t1 = helper.make_tensor_value_info('t1', TensorProto.FLOAT16, [2, 3]) t1 = helper.make_tensor_value_info('t1', TensorProto.FLOAT16, [2, 3])
t2 = helper.make_tensor_value_info('t2', TensorProto.FLOAT16, [2, 3]) t2 = helper.make_tensor_value_info('t2', TensorProto.FLOAT16, [2, 3])
...@@ -3036,7 +3061,7 @@ def isnan_half_test(): ...@@ -3036,7 +3061,7 @@ def isnan_half_test():
return ([node], [t1], [t2]) return ([node], [t1], [t2])
@onnx_test @onnx_test()
def layernorm_test(): def layernorm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 1, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 1, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 1, 5]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 1, 5])
...@@ -3099,7 +3124,7 @@ def layernorm_test(): ...@@ -3099,7 +3124,7 @@ def layernorm_test():
bias_add], [x, scale, bias], [y], [pow_tensor, epsilon_tensor]) bias_add], [x, scale, bias], [y], [pow_tensor, epsilon_tensor])
@onnx_test @onnx_test()
def leaky_relu_test(): def leaky_relu_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -3112,7 +3137,7 @@ def leaky_relu_test(): ...@@ -3112,7 +3137,7 @@ def leaky_relu_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def less_test(): def less_test():
ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0]) ax1 = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
x1 = helper.make_tensor("x1", x1 = helper.make_tensor("x1",
...@@ -3132,7 +3157,7 @@ def less_test(): ...@@ -3132,7 +3157,7 @@ def less_test():
return ([node], [x2], [y], [x1]) return ([node], [x2], [y], [x1])
@onnx_test @onnx_test()
def less_bool_test(): def less_bool_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3]) x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [2, 3])
...@@ -3150,7 +3175,7 @@ def less_bool_test(): ...@@ -3150,7 +3175,7 @@ def less_bool_test():
return ([node1, node2], [x1, x2], [y]) return ([node1, node2], [x1, x2], [y])
@onnx_test @onnx_test()
def lessorequal_test(): def lessorequal_test():
x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [3]) x1 = helper.make_tensor_value_info('x1', TensorProto.FLOAT, [3])
...@@ -3166,7 +3191,7 @@ def lessorequal_test(): ...@@ -3166,7 +3191,7 @@ def lessorequal_test():
return ([node], [x1, x2], [y]) return ([node], [x1, x2], [y])
@onnx_test @onnx_test()
def log_test(): def log_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -3180,7 +3205,7 @@ def log_test(): ...@@ -3180,7 +3205,7 @@ def log_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def logical_and_bcast_test(): def logical_and_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4, 5]) y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4, 5])
...@@ -3191,7 +3216,7 @@ def logical_and_bcast_test(): ...@@ -3191,7 +3216,7 @@ def logical_and_bcast_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def logical_or_test(): def logical_or_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5]) 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]) y = helper.make_tensor_value_info('1', TensorProto.BOOL, [2, 3, 4, 5])
...@@ -3202,7 +3227,7 @@ def logical_or_test(): ...@@ -3202,7 +3227,7 @@ def logical_or_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def logical_xor_bcast_test(): def logical_xor_bcast_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.BOOL, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4, 1]) y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4, 1])
...@@ -3213,7 +3238,7 @@ def logical_xor_bcast_test(): ...@@ -3213,7 +3238,7 @@ def logical_xor_bcast_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def logsoftmax_test(): def logsoftmax_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 5, 6])
...@@ -3226,7 +3251,7 @@ def logsoftmax_test(): ...@@ -3226,7 +3251,7 @@ def logsoftmax_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def logsoftmax_nonstd_input_test(): def logsoftmax_nonstd_input_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [6, 9]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [6, 9])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [3, 4])
...@@ -3246,7 +3271,7 @@ def logsoftmax_nonstd_input_test(): ...@@ -3246,7 +3271,7 @@ def logsoftmax_nonstd_input_test():
return ([node0, node1], [x], [y]) return ([node0, node1], [x], [y])
@onnx_test @onnx_test()
def loop_default_test(): def loop_default_test():
body = helper.make_graph([ body = helper.make_graph([
helper.make_node("Add", ["a", "b_in"], ["my_local"]), helper.make_node("Add", ["a", "b_in"], ["my_local"]),
...@@ -3283,7 +3308,7 @@ def loop_default_test(): ...@@ -3283,7 +3308,7 @@ def loop_default_test():
return ([node], [a, b], [b_loop, uout]) return ([node], [a, b], [b_loop, uout])
@onnx_test @onnx_test()
def loop_test(): def loop_test():
body = helper.make_graph([ body = helper.make_graph([
helper.make_node("Add", ["a", "b_in"], ["my_local"]), helper.make_node("Add", ["a", "b_in"], ["my_local"]),
...@@ -3324,7 +3349,7 @@ def loop_test(): ...@@ -3324,7 +3349,7 @@ def loop_test():
return ([node], [iter, cond, a, b], [b_loop, uout]) return ([node], [iter, cond, a, b], [b_loop, uout])
@onnx_test @onnx_test()
def lpnormalization_axis_error_test(): def lpnormalization_axis_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
...@@ -3336,7 +3361,7 @@ def lpnormalization_axis_error_test(): ...@@ -3336,7 +3361,7 @@ def lpnormalization_axis_error_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def lpnormalization_default_test(): def lpnormalization_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
...@@ -3350,7 +3375,7 @@ def lpnormalization_default_test(): ...@@ -3350,7 +3375,7 @@ def lpnormalization_default_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def lpnormalization_l1_test(): def lpnormalization_l1_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
...@@ -3364,7 +3389,7 @@ def lpnormalization_l1_test(): ...@@ -3364,7 +3389,7 @@ def lpnormalization_l1_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def lpnormalization_l2_test(): def lpnormalization_l2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
...@@ -3376,7 +3401,7 @@ def lpnormalization_l2_test(): ...@@ -3376,7 +3401,7 @@ def lpnormalization_l2_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def lpnormalization_p_error_test(): def lpnormalization_p_error_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 3])
...@@ -3388,7 +3413,7 @@ def lpnormalization_p_error_test(): ...@@ -3388,7 +3413,7 @@ def lpnormalization_p_error_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def lppool_l1_test(): def lppool_l1_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 3])
...@@ -3401,7 +3426,7 @@ def lppool_l1_test(): ...@@ -3401,7 +3426,7 @@ def lppool_l1_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def lppool_l2_test(): def lppool_l2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 3, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 3, 3])
...@@ -3414,7 +3439,7 @@ def lppool_l2_test(): ...@@ -3414,7 +3439,7 @@ def lppool_l2_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def lrn_test(): def lrn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 28, 24, 24]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 28, 24, 24])
...@@ -3430,7 +3455,7 @@ def lrn_test(): ...@@ -3430,7 +3455,7 @@ def lrn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def matmul_bmbm_test(): def matmul_bmbm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 6, 7]) 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]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [5, 2, 1, 7, 8])
...@@ -3445,7 +3470,7 @@ def matmul_bmbm_test(): ...@@ -3445,7 +3470,7 @@ def matmul_bmbm_test():
return ([node], [m1, m2], [y]) return ([node], [m1, m2], [y])
@onnx_test @onnx_test()
def matmul_bmv_test(): def matmul_bmv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 6, 7]) m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 6, 7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7])
...@@ -3460,7 +3485,7 @@ def matmul_bmv_test(): ...@@ -3460,7 +3485,7 @@ def matmul_bmv_test():
return ([node], [m1, m2], [y]) return ([node], [m1, m2], [y])
@onnx_test @onnx_test()
def matmul_mv_test(): def matmul_mv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [6, 7]) m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [6, 7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7])
...@@ -3475,7 +3500,7 @@ def matmul_mv_test(): ...@@ -3475,7 +3500,7 @@ def matmul_mv_test():
return ([node], [m1, m2], [y]) return ([node], [m1, m2], [y])
@onnx_test @onnx_test()
def matmul_vbm_test(): def matmul_vbm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7]) m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [5, 7, 8]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [5, 7, 8])
...@@ -3490,7 +3515,7 @@ def matmul_vbm_test(): ...@@ -3490,7 +3515,7 @@ def matmul_vbm_test():
return ([node], [m1, m2], [y]) return ([node], [m1, m2], [y])
@onnx_test @onnx_test()
def matmul_vm_test(): def matmul_vm_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7]) m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7, 8]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7, 8])
...@@ -3505,7 +3530,7 @@ def matmul_vm_test(): ...@@ -3505,7 +3530,7 @@ def matmul_vm_test():
return ([node], [m1, m2], [y]) return ([node], [m1, m2], [y])
@onnx_test @onnx_test()
def matmul_vv_test(): def matmul_vv_test():
m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7]) m1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [7])
m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7]) m2 = helper.make_tensor_value_info('2', TensorProto.FLOAT, [7])
...@@ -3520,7 +3545,7 @@ def matmul_vv_test(): ...@@ -3520,7 +3545,7 @@ def matmul_vv_test():
return ([node], [m1, m2], [y]) return ([node], [m1, m2], [y])
@onnx_test @onnx_test()
def matmulinteger_test(): def matmulinteger_test():
m1 = helper.make_tensor_value_info('1', TensorProto.INT8, [3, 6, 16]) m1 = helper.make_tensor_value_info('1', TensorProto.INT8, [3, 6, 16])
m2 = helper.make_tensor_value_info('2', TensorProto.INT8, [3, 16, 8]) m2 = helper.make_tensor_value_info('2', TensorProto.INT8, [3, 16, 8])
...@@ -3535,7 +3560,7 @@ def matmulinteger_test(): ...@@ -3535,7 +3560,7 @@ def matmulinteger_test():
return ([node], [m1, m2], [y]) return ([node], [m1, m2], [y])
@onnx_test @onnx_test()
def max_test(): def max_test():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -3551,7 +3576,7 @@ def max_test(): ...@@ -3551,7 +3576,7 @@ def max_test():
return ([node], [a, b, c], [y]) return ([node], [a, b, c], [y])
@onnx_test @onnx_test()
def maxpool_notset_test(): def maxpool_notset_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 1, 1])
...@@ -3567,7 +3592,7 @@ def maxpool_notset_test(): ...@@ -3567,7 +3592,7 @@ def maxpool_notset_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def maxpool_same_upper_test(): def maxpool_same_upper_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1, 1, 5, 5]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1, 1, 5, 5])
...@@ -3581,7 +3606,7 @@ def maxpool_same_upper_test(): ...@@ -3581,7 +3606,7 @@ def maxpool_same_upper_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def mean_broadcast_test(): def mean_broadcast_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 4]) data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3, 4])
data_1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, data_1 = helper.make_tensor_value_info('1', TensorProto.FLOAT,
...@@ -3600,7 +3625,7 @@ def mean_broadcast_test(): ...@@ -3600,7 +3625,7 @@ def mean_broadcast_test():
return ([node], [data_0, data_1, data_2, data_3, data_4], [mean]) return ([node], [data_0, data_1, data_2, data_3, data_4], [mean])
@onnx_test @onnx_test()
def mean_fp16_test(): def mean_fp16_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [1, 2, 3]) 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]) data_1 = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [1, 2, 3])
...@@ -3616,7 +3641,7 @@ def mean_fp16_test(): ...@@ -3616,7 +3641,7 @@ def mean_fp16_test():
return ([node], [data_0, data_1, data_2], [mean]) return ([node], [data_0, data_1, data_2], [mean])
@onnx_test @onnx_test()
def mean_invalid_broadcast_test(): def mean_invalid_broadcast_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3]) 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]) data_1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 2, 3])
...@@ -3631,7 +3656,7 @@ def mean_invalid_broadcast_test(): ...@@ -3631,7 +3656,7 @@ def mean_invalid_broadcast_test():
return ([node], [data_0, data_1, data_2], [mean]) return ([node], [data_0, data_1, data_2], [mean])
@onnx_test @onnx_test()
def mean_single_input_test(): def mean_single_input_test():
data_0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 3]) 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]) mean = helper.make_tensor_value_info('mean', TensorProto.FLOAT, [1, 2, 3])
...@@ -3641,7 +3666,7 @@ def mean_single_input_test(): ...@@ -3641,7 +3666,7 @@ def mean_single_input_test():
return ([node], [data_0], [mean]) return ([node], [data_0], [mean])
@onnx_test @onnx_test()
def mean_test(): def mean_test():
data = [ data = [
helper.make_tensor_value_info(str(i), TensorProto.DOUBLE, [2, 2, 2]) helper.make_tensor_value_info(str(i), TensorProto.DOUBLE, [2, 2, 2])
...@@ -3655,7 +3680,7 @@ def mean_test(): ...@@ -3655,7 +3680,7 @@ def mean_test():
return ([node], data, [mean]) return ([node], data, [mean])
@onnx_test @onnx_test()
def mean_integral_test(): def mean_integral_test():
data = [ data = [
helper.make_tensor_value_info(str(i), TensorProto.INT32, [2, 2, 2]) helper.make_tensor_value_info(str(i), TensorProto.INT32, [2, 2, 2])
...@@ -3669,7 +3694,7 @@ def mean_integral_test(): ...@@ -3669,7 +3694,7 @@ def mean_integral_test():
return ([node], data, [mean]) return ([node], data, [mean])
@onnx_test @onnx_test()
def min_test(): def min_test():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -3685,7 +3710,7 @@ def min_test(): ...@@ -3685,7 +3710,7 @@ def min_test():
return ([node], [a, b, c], [y]) return ([node], [a, b, c], [y])
@onnx_test @onnx_test()
def mod_test(): def mod_test():
a = helper.make_tensor_value_info('0', TensorProto.INT32, [3, 3, 3]) a = helper.make_tensor_value_info('0', TensorProto.INT32, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3]) b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3])
...@@ -3696,7 +3721,7 @@ def mod_test(): ...@@ -3696,7 +3721,7 @@ def mod_test():
return ([node], [a, b], [y]) return ([node], [a, b], [y])
@onnx_test @onnx_test()
def mod_test_half(): def mod_test_half():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [3, 3, 3]) a = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [3, 3, 3]) b = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [3, 3, 3])
...@@ -3707,7 +3732,7 @@ def mod_test_half(): ...@@ -3707,7 +3732,7 @@ def mod_test_half():
return ([node], [a, b], [y]) return ([node], [a, b], [y])
@onnx_test @onnx_test()
def mod_test_different_dtypes(): def mod_test_different_dtypes():
a = helper.make_tensor_value_info('0', TensorProto.INT16, [3, 3, 3]) a = helper.make_tensor_value_info('0', TensorProto.INT16, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3]) b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3])
...@@ -3722,7 +3747,7 @@ def mod_test_different_dtypes(): ...@@ -3722,7 +3747,7 @@ def mod_test_different_dtypes():
return ([node], [a, b], [y]) return ([node], [a, b], [y])
@onnx_test @onnx_test()
def mod_test_fmod(): def mod_test_fmod():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3, 3]) a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 3, 3]) b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 3, 3])
...@@ -3738,7 +3763,7 @@ def mod_test_fmod(): ...@@ -3738,7 +3763,7 @@ def mod_test_fmod():
return ([node], [a, b], [y]) return ([node], [a, b], [y])
@onnx_test @onnx_test()
def mod_test_fmod_half(): def mod_test_fmod_half():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [3, 3, 3]) a = helper.make_tensor_value_info('0', TensorProto.FLOAT16, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [3, 3, 3]) b = helper.make_tensor_value_info('1', TensorProto.FLOAT16, [3, 3, 3])
...@@ -3752,7 +3777,7 @@ def mod_test_fmod_half(): ...@@ -3752,7 +3777,7 @@ def mod_test_fmod_half():
return ([node], [a, b], [y]) return ([node], [a, b], [y])
@onnx_test @onnx_test()
def mod_test_fmod_different_dtypes(): def mod_test_fmod_different_dtypes():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3, 3]) a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 3, 3])
b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3]) b = helper.make_tensor_value_info('1', TensorProto.INT32, [3, 3, 3])
...@@ -3768,7 +3793,7 @@ def mod_test_fmod_different_dtypes(): ...@@ -3768,7 +3793,7 @@ def mod_test_fmod_different_dtypes():
return ([node], [a, b], [y]) return ([node], [a, b], [y])
@onnx_test @onnx_test()
def multinomial_test(): def multinomial_test():
sample_size = 10 sample_size = 10
seed = 0.0 seed = 0.0
...@@ -3785,7 +3810,7 @@ def multinomial_test(): ...@@ -3785,7 +3810,7 @@ def multinomial_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def multinomial_generated_seed_test(): def multinomial_generated_seed_test():
sample_size = 10 sample_size = 10
input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10]) input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10])
...@@ -3800,7 +3825,7 @@ def multinomial_generated_seed_test(): ...@@ -3800,7 +3825,7 @@ def multinomial_generated_seed_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def multinomial_dtype_error_test(): def multinomial_dtype_error_test():
sample_size = 10 sample_size = 10
dtype = 0 dtype = 0
...@@ -3817,7 +3842,7 @@ def multinomial_dtype_error_test(): ...@@ -3817,7 +3842,7 @@ def multinomial_dtype_error_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def multinomial_int64_test(): def multinomial_int64_test():
sample_size = 10 sample_size = 10
dtype = 7 dtype = 7
...@@ -3836,7 +3861,7 @@ def multinomial_int64_test(): ...@@ -3836,7 +3861,7 @@ def multinomial_int64_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def neg_test(): def neg_test():
x = helper.make_tensor_value_info('0', TensorProto.INT64, [2, 3]) x = helper.make_tensor_value_info('0', TensorProto.INT64, [2, 3])
y = helper.make_tensor_value_info('1', TensorProto.INT64, [2, 3]) y = helper.make_tensor_value_info('1', TensorProto.INT64, [2, 3])
...@@ -3846,7 +3871,7 @@ def neg_test(): ...@@ -3846,7 +3871,7 @@ def neg_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def neg_dynamic_test(): def neg_dynamic_test():
x = helper.make_tensor_value_info('0', TensorProto.INT64, [None, 3]) x = helper.make_tensor_value_info('0', TensorProto.INT64, [None, 3])
y = helper.make_tensor_value_info('1', TensorProto.INT64, [None, 3]) y = helper.make_tensor_value_info('1', TensorProto.INT64, [None, 3])
...@@ -3856,7 +3881,7 @@ def neg_dynamic_test(): ...@@ -3856,7 +3881,7 @@ def neg_dynamic_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def nms_test(): def nms_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4]) b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, [1, 1, 6]) s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, [1, 1, 6])
...@@ -3881,7 +3906,7 @@ def nms_test(): ...@@ -3881,7 +3906,7 @@ def nms_test():
return ([node], [b, s, mo, iou, st], [out]) return ([node], [b, s, mo, iou, st], [out])
@onnx_test @onnx_test()
def nms_use_dyn_output_false_test(): def nms_use_dyn_output_false_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4]) b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, [1, 1, 6]) s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, [1, 1, 6])
...@@ -3906,7 +3931,7 @@ def nms_use_dyn_output_false_test(): ...@@ -3906,7 +3931,7 @@ def nms_use_dyn_output_false_test():
return ([node], [b, s, mo, iou, st], [out]) return ([node], [b, s, mo, iou, st], [out])
@onnx_test @onnx_test()
def nms_dynamic_batch_test(): def nms_dynamic_batch_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [None, 6, 4]) b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [None, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, s = helper.make_tensor_value_info('scores', TensorProto.FLOAT,
...@@ -3933,7 +3958,7 @@ def nms_dynamic_batch_test(): ...@@ -3933,7 +3958,7 @@ def nms_dynamic_batch_test():
return ([node], [b, s, mo, iou, st], [out]) return ([node], [b, s, mo, iou, st], [out])
@onnx_test @onnx_test()
def nms_dynamic_boxes_test(): def nms_dynamic_boxes_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, None, 4]) b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, None, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, s = helper.make_tensor_value_info('scores', TensorProto.FLOAT,
...@@ -3958,7 +3983,7 @@ def nms_dynamic_boxes_test(): ...@@ -3958,7 +3983,7 @@ def nms_dynamic_boxes_test():
return ([node], [b, s, mo, iou, st], [out]) return ([node], [b, s, mo, iou, st], [out])
@onnx_test @onnx_test()
def nms_dynamic_classes_test(): def nms_dynamic_classes_test():
b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4]) b = helper.make_tensor_value_info('boxes', TensorProto.FLOAT, [1, 6, 4])
s = helper.make_tensor_value_info('scores', TensorProto.FLOAT, s = helper.make_tensor_value_info('scores', TensorProto.FLOAT,
...@@ -3983,7 +4008,7 @@ def nms_dynamic_classes_test(): ...@@ -3983,7 +4008,7 @@ def nms_dynamic_classes_test():
return ([node], [b, s, mo, iou, st], [out]) return ([node], [b, s, mo, iou, st], [out])
@onnx_test @onnx_test()
def not_test(): def not_test():
x = helper.make_tensor_value_info('0', TensorProto.INT32, [4]) x = helper.make_tensor_value_info('0', TensorProto.INT32, [4])
y = helper.make_tensor_value_info('1', TensorProto.INT32, [4]) y = helper.make_tensor_value_info('1', TensorProto.INT32, [4])
...@@ -3993,7 +4018,7 @@ def not_test(): ...@@ -3993,7 +4018,7 @@ def not_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def not_bool_test(): def not_bool_test():
x = helper.make_tensor_value_info('0', TensorProto.BOOL, [4]) x = helper.make_tensor_value_info('0', TensorProto.BOOL, [4])
y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4]) y = helper.make_tensor_value_info('1', TensorProto.BOOL, [4])
...@@ -4003,7 +4028,7 @@ def not_bool_test(): ...@@ -4003,7 +4028,7 @@ def not_bool_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def no_pad_test(): def no_pad_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 2]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 2])
...@@ -4016,7 +4041,7 @@ def no_pad_test(): ...@@ -4016,7 +4041,7 @@ def no_pad_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def nonzero_dynamic_test(): def nonzero_dynamic_test():
x = helper.make_tensor_value_info('data', TensorProto.BOOL, [2, 2]) x = helper.make_tensor_value_info('data', TensorProto.BOOL, [2, 2])
y = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 3]) y = helper.make_tensor_value_info('indices', TensorProto.INT64, [2, 3])
...@@ -4028,7 +4053,7 @@ def nonzero_dynamic_test(): ...@@ -4028,7 +4053,7 @@ def nonzero_dynamic_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def nonzero_test(): def nonzero_test():
data1 = np.array([[1., 0.], [1., 1.]]) data1 = np.array([[1., 0.], [1., 1.]])
data = helper.make_tensor(name='data', data = helper.make_tensor(name='data',
...@@ -4044,7 +4069,7 @@ def nonzero_test(): ...@@ -4044,7 +4069,7 @@ def nonzero_test():
return ([node], [], [y], [data]) return ([node], [], [y], [data])
@onnx_test @onnx_test()
def nonzero_int_test(): def nonzero_int_test():
data1 = np.array([[1, 1, 0], [1, 0, 1]]) data1 = np.array([[1, 1, 0], [1, 0, 1]])
data = helper.make_tensor(name='data', data = helper.make_tensor(name='data',
...@@ -4060,7 +4085,7 @@ def nonzero_int_test(): ...@@ -4060,7 +4085,7 @@ def nonzero_int_test():
return ([node], [], [y], [data]) return ([node], [], [y], [data])
@onnx_test @onnx_test()
def onehot_test(): def onehot_test():
axis_value = 0 axis_value = 0
depth = np.array([3]) depth = np.array([3])
...@@ -4082,7 +4107,7 @@ def onehot_test(): ...@@ -4082,7 +4107,7 @@ def onehot_test():
return ([node], [indices, values], [y], [depth_tensor]) return ([node], [indices, values], [y], [depth_tensor])
@onnx_test @onnx_test()
def pad_test(): def pad_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 4]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 4])
...@@ -4095,7 +4120,7 @@ def pad_test(): ...@@ -4095,7 +4120,7 @@ def pad_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def pad_3arg_test(): def pad_3arg_test():
values = np.array([1]) values = np.array([1])
val_tensor = helper.make_tensor(name='val', val_tensor = helper.make_tensor(name='val',
...@@ -4127,7 +4152,7 @@ def pad_3arg_test(): ...@@ -4127,7 +4152,7 @@ def pad_3arg_test():
return ([arg_val, arg_pad, node], [x], [y]) return ([arg_val, arg_pad, node], [x], [y])
@onnx_test @onnx_test()
def pad_reflect_test(): def pad_reflect_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 5]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 5])
...@@ -4150,7 +4175,7 @@ def pad_reflect_test(): ...@@ -4150,7 +4175,7 @@ def pad_reflect_test():
return ([arg_pad, node], [x], [y]) return ([arg_pad, node], [x], [y])
@onnx_test @onnx_test()
def pad_reflect_multiaxis_test(): def pad_reflect_multiaxis_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 5]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 5])
...@@ -4173,7 +4198,7 @@ def pad_reflect_multiaxis_test(): ...@@ -4173,7 +4198,7 @@ def pad_reflect_multiaxis_test():
return ([arg_pad, node], [x], [y]) return ([arg_pad, node], [x], [y])
@onnx_test @onnx_test()
def pad_attr_dyn_test(): def pad_attr_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None])
...@@ -4186,7 +4211,7 @@ def pad_attr_dyn_test(): ...@@ -4186,7 +4211,7 @@ def pad_attr_dyn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def pad_cnst_dyn_test(): def pad_cnst_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None])
...@@ -4206,7 +4231,7 @@ def pad_cnst_dyn_test(): ...@@ -4206,7 +4231,7 @@ def pad_cnst_dyn_test():
return ([arg_pad, node], [x], [y]) return ([arg_pad, node], [x], [y])
@onnx_test @onnx_test()
def pad_dyn_reflect_error(): def pad_dyn_reflect_error():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, None])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, None])
...@@ -4220,7 +4245,7 @@ def pad_dyn_reflect_error(): ...@@ -4220,7 +4245,7 @@ def pad_dyn_reflect_error():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def pow_test(): def pow_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) 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]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 3, 4, 5])
...@@ -4236,7 +4261,7 @@ def pow_test(): ...@@ -4236,7 +4261,7 @@ def pow_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def pow_fp32_i64_test(): def pow_fp32_i64_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) 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]) arg1 = helper.make_tensor_value_info('1', TensorProto.INT64, [2, 3, 4, 5])
...@@ -4252,7 +4277,7 @@ def pow_fp32_i64_test(): ...@@ -4252,7 +4277,7 @@ def pow_fp32_i64_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def pow_i64_fp32_test(): def pow_i64_fp32_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT64, [2, 3, 4, 5]) 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]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 3, 4, 5])
...@@ -4268,7 +4293,7 @@ def pow_i64_fp32_test(): ...@@ -4268,7 +4293,7 @@ def pow_i64_fp32_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def prefix_scan_sum_test(): def prefix_scan_sum_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 2]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 2])
...@@ -4285,7 +4310,7 @@ def prefix_scan_sum_test(): ...@@ -4285,7 +4310,7 @@ def prefix_scan_sum_test():
return ([node], [x], [y], [axis_tensor]) return ([node], [x], [y], [axis_tensor])
@onnx_test @onnx_test()
def prelu_brcst_test(): def prelu_brcst_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 5]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [4, 5])
...@@ -4301,7 +4326,7 @@ def prelu_brcst_test(): ...@@ -4301,7 +4326,7 @@ def prelu_brcst_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def quantizelinear_test(): def quantizelinear_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5]) arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
...@@ -4316,7 +4341,7 @@ def quantizelinear_test(): ...@@ -4316,7 +4341,7 @@ def quantizelinear_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def quantizelinear_int32_test(): def quantizelinear_int32_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.INT32, [5]) arg0 = helper.make_tensor_value_info('0', TensorProto.INT32, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
...@@ -4331,7 +4356,7 @@ def quantizelinear_int32_test(): ...@@ -4331,7 +4356,7 @@ def quantizelinear_int32_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def quantizelinear_zero_point_test(): def quantizelinear_zero_point_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5]) arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1])
...@@ -4362,17 +4387,17 @@ def make_quantizelinear_axis_graph(axis): ...@@ -4362,17 +4387,17 @@ def make_quantizelinear_axis_graph(axis):
return ([node], [arg0, arg1, arg2], [arg_out]) return ([node], [arg0, arg1, arg2], [arg_out])
@onnx_test @onnx_test()
def quantizelinear_axis_test(): def quantizelinear_axis_test():
return make_quantizelinear_axis_graph(2) return make_quantizelinear_axis_graph(2)
@onnx_test @onnx_test()
def quantizelinear_neg_axis_test(): def quantizelinear_neg_axis_test():
return make_quantizelinear_axis_graph(-2) return make_quantizelinear_axis_graph(-2)
@onnx_test @onnx_test()
def randomnormal_test(): def randomnormal_test():
dtype = 11 dtype = 11
mean = 10.0 mean = 10.0
...@@ -4394,7 +4419,7 @@ def randomnormal_test(): ...@@ -4394,7 +4419,7 @@ def randomnormal_test():
return ([node], [], [output]) return ([node], [], [output])
@onnx_test @onnx_test()
def randomnormal_dtype_error_test(): def randomnormal_dtype_error_test():
dtype = 6 dtype = 6
shape = [2, 3, 4] shape = [2, 3, 4]
...@@ -4410,7 +4435,7 @@ def randomnormal_dtype_error_test(): ...@@ -4410,7 +4435,7 @@ def randomnormal_dtype_error_test():
return ([node], [], [output]) return ([node], [], [output])
@onnx_test @onnx_test()
def randomnormal_generated_seed_test(): def randomnormal_generated_seed_test():
sample_size = 10 sample_size = 10
input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10]) input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10])
...@@ -4425,7 +4450,7 @@ def randomnormal_generated_seed_test(): ...@@ -4425,7 +4450,7 @@ def randomnormal_generated_seed_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def randomnormal_shape_error_test(): def randomnormal_shape_error_test():
dtype = 1 dtype = 1
output = helper.make_tensor_value_info('output', TensorProto.FLOAT, output = helper.make_tensor_value_info('output', TensorProto.FLOAT,
...@@ -4439,7 +4464,7 @@ def randomnormal_shape_error_test(): ...@@ -4439,7 +4464,7 @@ def randomnormal_shape_error_test():
return ([node], [], [output]) return ([node], [], [output])
@onnx_test @onnx_test()
def randomnormallike_test(): def randomnormallike_test():
dtype = 10 dtype = 10
mean = 10.0 mean = 10.0
...@@ -4461,7 +4486,7 @@ def randomnormallike_test(): ...@@ -4461,7 +4486,7 @@ def randomnormallike_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def randomnormallike_type_error_test(): def randomnormallike_type_error_test():
seed = 0 seed = 0
input = helper.make_tensor_value_info('input', TensorProto.INT32, input = helper.make_tensor_value_info('input', TensorProto.INT32,
...@@ -4477,7 +4502,7 @@ def randomnormallike_type_error_test(): ...@@ -4477,7 +4502,7 @@ def randomnormallike_type_error_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def randomuniform_test(): def randomuniform_test():
dtype = 11 dtype = 11
high = 1.0 high = 1.0
...@@ -4499,7 +4524,7 @@ def randomuniform_test(): ...@@ -4499,7 +4524,7 @@ def randomuniform_test():
return ([node], [], [output]) return ([node], [], [output])
@onnx_test @onnx_test()
def randomuniform_dtype_error_test(): def randomuniform_dtype_error_test():
dtype = 6 dtype = 6
shape = [2, 3, 4] shape = [2, 3, 4]
...@@ -4515,7 +4540,7 @@ def randomuniform_dtype_error_test(): ...@@ -4515,7 +4540,7 @@ def randomuniform_dtype_error_test():
return ([node], [], [output]) return ([node], [], [output])
@onnx_test @onnx_test()
def randomuniform_generated_seed_test(): def randomuniform_generated_seed_test():
sample_size = 10 sample_size = 10
input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10]) input = helper.make_tensor_value_info("input", TensorProto.FLOAT, [1, 10])
...@@ -4530,7 +4555,7 @@ def randomuniform_generated_seed_test(): ...@@ -4530,7 +4555,7 @@ def randomuniform_generated_seed_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def randomuniform_shape_error_test(): def randomuniform_shape_error_test():
dtype = 1 dtype = 1
output = helper.make_tensor_value_info('output', TensorProto.FLOAT, output = helper.make_tensor_value_info('output', TensorProto.FLOAT,
...@@ -4544,7 +4569,7 @@ def randomuniform_shape_error_test(): ...@@ -4544,7 +4569,7 @@ def randomuniform_shape_error_test():
return ([node], [], [output]) return ([node], [], [output])
@onnx_test @onnx_test()
def randomuniformlike_test(): def randomuniformlike_test():
dtype = 10 dtype = 10
high = 10.0 high = 10.0
...@@ -4566,7 +4591,7 @@ def randomuniformlike_test(): ...@@ -4566,7 +4591,7 @@ def randomuniformlike_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def randomuniformlike_type_error_test(): def randomuniformlike_type_error_test():
seed = 0 seed = 0
input = helper.make_tensor_value_info('input', TensorProto.INT32, input = helper.make_tensor_value_info('input', TensorProto.INT32,
...@@ -4582,7 +4607,7 @@ def randomuniformlike_type_error_test(): ...@@ -4582,7 +4607,7 @@ def randomuniformlike_type_error_test():
return ([node], [input], [output]) return ([node], [input], [output])
@onnx_test @onnx_test()
def range_test(): def range_test():
start_val = np.array([10]) start_val = np.array([10])
...@@ -4625,7 +4650,7 @@ def range_test(): ...@@ -4625,7 +4650,7 @@ def range_test():
return ([start, limit, delta, node], [], [y]) return ([start, limit, delta, node], [], [y])
@onnx_test @onnx_test()
def range_float_test(): def range_float_test():
start_val = np.array([2]) start_val = np.array([2])
...@@ -4668,7 +4693,7 @@ def range_float_test(): ...@@ -4668,7 +4693,7 @@ def range_float_test():
return ([start, limit, delta, node], [], [y]) return ([start, limit, delta, node], [], [y])
@onnx_test @onnx_test()
def recip_test(): def recip_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3])
...@@ -4682,7 +4707,7 @@ def recip_test(): ...@@ -4682,7 +4707,7 @@ def recip_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducel1_test(): def reducel1_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
...@@ -4697,7 +4722,7 @@ def reducel1_test(): ...@@ -4697,7 +4722,7 @@ def reducel1_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducel2_test(): def reducel2_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 5])
...@@ -4712,7 +4737,7 @@ def reducel2_test(): ...@@ -4712,7 +4737,7 @@ def reducel2_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reduce_log_sum_test(): def reduce_log_sum_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 1, 5, 6])
...@@ -4727,7 +4752,7 @@ def reduce_log_sum_test(): ...@@ -4727,7 +4752,7 @@ def reduce_log_sum_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reduce_log_sum_exp_test(): def reduce_log_sum_exp_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 5, 6])
...@@ -4742,7 +4767,7 @@ def reduce_log_sum_exp_test(): ...@@ -4742,7 +4767,7 @@ def reduce_log_sum_exp_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducemax_test(): def reducemax_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
...@@ -4757,7 +4782,7 @@ def reducemax_test(): ...@@ -4757,7 +4782,7 @@ def reducemax_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducemean_test(): def reducemean_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4])
...@@ -4772,7 +4797,7 @@ def reducemean_test(): ...@@ -4772,7 +4797,7 @@ def reducemean_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducemean_keepdims_test(): def reducemean_keepdims_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
...@@ -4787,7 +4812,7 @@ def reducemean_keepdims_test(): ...@@ -4787,7 +4812,7 @@ def reducemean_keepdims_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducemin_test(): def reducemin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 1, 5, 1])
...@@ -4802,7 +4827,7 @@ def reducemin_test(): ...@@ -4802,7 +4827,7 @@ def reducemin_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reduceprod_test(): def reduceprod_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
...@@ -4817,7 +4842,7 @@ def reduceprod_test(): ...@@ -4817,7 +4842,7 @@ def reduceprod_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducesum_test(): def reducesum_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
...@@ -4832,7 +4857,7 @@ def reducesum_test(): ...@@ -4832,7 +4857,7 @@ def reducesum_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducesum_empty_axes_test(): def reducesum_empty_axes_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
...@@ -4851,7 +4876,7 @@ def reducesum_empty_axes_test(): ...@@ -4851,7 +4876,7 @@ def reducesum_empty_axes_test():
return ([node], [x], [y], [axes_tensor]) return ([node], [x], [y], [axes_tensor])
@onnx_test @onnx_test()
def reducesum_noop_test(): def reducesum_noop_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 6])
...@@ -4870,7 +4895,7 @@ def reducesum_noop_test(): ...@@ -4870,7 +4895,7 @@ def reducesum_noop_test():
return ([node], [x], [y], [axes_tensor]) return ([node], [x], [y], [axes_tensor])
@onnx_test @onnx_test()
def reducesum_keepdims_test(): def reducesum_keepdims_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 1])
...@@ -4885,7 +4910,7 @@ def reducesum_keepdims_test(): ...@@ -4885,7 +4910,7 @@ def reducesum_keepdims_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducesum_multiaxis_test(): def reducesum_multiaxis_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 1, 1])
...@@ -4900,7 +4925,7 @@ def reducesum_multiaxis_test(): ...@@ -4900,7 +4925,7 @@ def reducesum_multiaxis_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reducesum_square_test(): def reducesum_square_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 4, 6])
...@@ -4915,7 +4940,7 @@ def reducesum_square_test(): ...@@ -4915,7 +4940,7 @@ def reducesum_square_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reshape_test(): def reshape_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [4, 2, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [4, 2, 3])
x_shape = helper.make_tensor_value_info('1', TensorProto.INT64, [2]) x_shape = helper.make_tensor_value_info('1', TensorProto.INT64, [2])
...@@ -4934,7 +4959,7 @@ def reshape_test(): ...@@ -4934,7 +4959,7 @@ def reshape_test():
[helper.make_tensor('1', TensorProto.INT64, [2], [3, 8])]) [helper.make_tensor('1', TensorProto.INT64, [2], [3, 8])])
@onnx_test @onnx_test()
def reshape_non_standard_test(): def reshape_non_standard_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 3, 2]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 3, 2])
...@@ -4954,7 +4979,7 @@ def reshape_non_standard_test(): ...@@ -4954,7 +4979,7 @@ def reshape_non_standard_test():
return ([trans, res], [x], [y]) return ([trans, res], [x], [y])
@onnx_test @onnx_test()
def resize_downsample_f_test(): def resize_downsample_f_test():
scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales', scale_tensor = helper.make_tensor(name='scales',
...@@ -4976,7 +5001,7 @@ def resize_downsample_f_test(): ...@@ -4976,7 +5001,7 @@ def resize_downsample_f_test():
return ([node], [X], [Y], [scale_tensor]) return ([node], [X], [Y], [scale_tensor])
@onnx_test @onnx_test()
def resize_downsample_c_test(): def resize_downsample_c_test():
scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales', scale_tensor = helper.make_tensor(name='scales',
...@@ -4997,7 +5022,7 @@ def resize_downsample_c_test(): ...@@ -4997,7 +5022,7 @@ def resize_downsample_c_test():
return ([node], [X], [Y], [scale_tensor]) return ([node], [X], [Y], [scale_tensor])
@onnx_test @onnx_test()
def resize_downsample_linear_test(): def resize_downsample_linear_test():
scales = np.array([1.0, 1.0, 0.6, 0.5], dtype=np.float32) scales = np.array([1.0, 1.0, 0.6, 0.5], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales', scale_tensor = helper.make_tensor(name='scales',
...@@ -5016,7 +5041,7 @@ def resize_downsample_linear_test(): ...@@ -5016,7 +5041,7 @@ def resize_downsample_linear_test():
return ([node], [X], [Y], [scale_tensor]) return ([node], [X], [Y], [scale_tensor])
@onnx_test @onnx_test()
def resize_nonstd_input_test(): def resize_nonstd_input_test():
scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales', scale_tensor = helper.make_tensor(name='scales',
...@@ -5042,7 +5067,7 @@ def resize_nonstd_input_test(): ...@@ -5042,7 +5067,7 @@ def resize_nonstd_input_test():
return ([trn, node], [X], [Y], [scale_tensor]) return ([trn, node], [X], [Y], [scale_tensor])
@onnx_test @onnx_test()
def resize_outsize_test(): def resize_outsize_test():
out_lens = np.array([1, 1, 4, 6], dtype=np.int64) out_lens = np.array([1, 1, 4, 6], dtype=np.int64)
out_lens_tensor = helper.make_tensor(name='out_lens', out_lens_tensor = helper.make_tensor(name='out_lens',
...@@ -5065,7 +5090,7 @@ def resize_outsize_test(): ...@@ -5065,7 +5090,7 @@ def resize_outsize_test():
return ([node], [X], [Y], [out_lens_tensor]) return ([node], [X], [Y], [out_lens_tensor])
@onnx_test @onnx_test()
def resize_upsample_linear_ac_test(): def resize_upsample_linear_ac_test():
scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32)
scales_tensor = helper.make_tensor(name='scales', scales_tensor = helper.make_tensor(name='scales',
...@@ -5086,7 +5111,7 @@ def resize_upsample_linear_ac_test(): ...@@ -5086,7 +5111,7 @@ def resize_upsample_linear_ac_test():
return ([node], [X], [Y], [scales_tensor]) return ([node], [X], [Y], [scales_tensor])
@onnx_test @onnx_test()
def resize_upsample_linear_test(): def resize_upsample_linear_test():
scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32)
scales_tensor = helper.make_tensor(name='scales', scales_tensor = helper.make_tensor(name='scales',
...@@ -5105,7 +5130,7 @@ def resize_upsample_linear_test(): ...@@ -5105,7 +5130,7 @@ def resize_upsample_linear_test():
return ([node], [X], [Y], [scales_tensor]) return ([node], [X], [Y], [scales_tensor])
@onnx_test @onnx_test()
def resize_upsample_pf_test(): def resize_upsample_pf_test():
scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales', scale_tensor = helper.make_tensor(name='scales',
...@@ -5124,7 +5149,7 @@ def resize_upsample_pf_test(): ...@@ -5124,7 +5149,7 @@ def resize_upsample_pf_test():
return ([node], [X], [Y], [scale_tensor]) return ([node], [X], [Y], [scale_tensor])
@onnx_test @onnx_test()
def resize_upsample_pc_test(): def resize_upsample_pc_test():
scales = np.array([1.0, 1.0, 2.0, 1.5], dtype=np.float32) scales = np.array([1.0, 1.0, 2.0, 1.5], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales', scale_tensor = helper.make_tensor(name='scales',
...@@ -5147,7 +5172,7 @@ def resize_upsample_pc_test(): ...@@ -5147,7 +5172,7 @@ def resize_upsample_pc_test():
return ([node], [X], [Y], [scale_tensor]) return ([node], [X], [Y], [scale_tensor])
@onnx_test @onnx_test()
def reversesequence_4D_test(): def reversesequence_4D_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2, 2]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 2, 2])
...@@ -5163,7 +5188,7 @@ def reversesequence_4D_test(): ...@@ -5163,7 +5188,7 @@ def reversesequence_4D_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reversesequence_batch_test(): def reversesequence_batch_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
seq_lens = np.array([1, 2, 3, 4]) seq_lens = np.array([1, 2, 3, 4])
...@@ -5191,7 +5216,7 @@ def reversesequence_batch_test(): ...@@ -5191,7 +5216,7 @@ def reversesequence_batch_test():
return ([arg_seq_lens, node], [x], [y]) return ([arg_seq_lens, node], [x], [y])
@onnx_test @onnx_test()
def reversesequence_batch_axis_err_test(): def reversesequence_batch_axis_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4, 2]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4, 2])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4, 2]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4, 2])
...@@ -5207,7 +5232,7 @@ def reversesequence_batch_axis_err_test(): ...@@ -5207,7 +5232,7 @@ def reversesequence_batch_axis_err_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reversesequence_rank_err_test(): def reversesequence_rank_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4])
...@@ -5221,7 +5246,7 @@ def reversesequence_rank_err_test(): ...@@ -5221,7 +5246,7 @@ def reversesequence_rank_err_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reversesequence_sequence_lens_shape_err_test(): def reversesequence_sequence_lens_shape_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4])
...@@ -5235,7 +5260,7 @@ def reversesequence_sequence_lens_shape_err_test(): ...@@ -5235,7 +5260,7 @@ def reversesequence_sequence_lens_shape_err_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reversesequence_same_axis_err_test(): def reversesequence_same_axis_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4])
...@@ -5251,7 +5276,7 @@ def reversesequence_same_axis_err_test(): ...@@ -5251,7 +5276,7 @@ def reversesequence_same_axis_err_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reversesequence_time_axis_err_test(): def reversesequence_time_axis_err_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4, 2, 3]) 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]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4, 2, 3])
...@@ -5267,7 +5292,7 @@ def reversesequence_time_axis_err_test(): ...@@ -5267,7 +5292,7 @@ def reversesequence_time_axis_err_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def reversesequence_time_test(): def reversesequence_time_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [4, 4])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [4, 4])
...@@ -5283,7 +5308,7 @@ def reversesequence_time_test(): ...@@ -5283,7 +5308,7 @@ def reversesequence_time_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def roialign_default_test(): def roialign_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 4, 7, 8]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 4, 7, 8])
roi = helper.make_tensor_value_info('rois', TensorProto.FLOAT, [8, 4]) roi = helper.make_tensor_value_info('rois', TensorProto.FLOAT, [8, 4])
...@@ -5297,7 +5322,7 @@ def roialign_default_test(): ...@@ -5297,7 +5322,7 @@ def roialign_default_test():
return ([node], [x, roi, bi], [y]) return ([node], [x, roi, bi], [y])
@onnx_test @onnx_test()
def roialign_test(): def roialign_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 5, 4, 7]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 5, 4, 7])
roi = helper.make_tensor_value_info('rois', TensorProto.FLOAT, [8, 4]) roi = helper.make_tensor_value_info('rois', TensorProto.FLOAT, [8, 4])
...@@ -5318,7 +5343,7 @@ def roialign_test(): ...@@ -5318,7 +5343,7 @@ def roialign_test():
return ([node], [x, roi, bi], [y]) return ([node], [x, roi, bi], [y])
@onnx_test @onnx_test()
def scatter_add_test(): def scatter_add_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, i = helper.make_tensor_value_info('indices', TensorProto.INT32,
...@@ -5338,7 +5363,7 @@ def scatter_add_test(): ...@@ -5338,7 +5363,7 @@ def scatter_add_test():
return ([node], [x, i, u], [y]) return ([node], [x, i, u], [y])
@onnx_test @onnx_test()
def scatter_mul_test(): def scatter_mul_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, i = helper.make_tensor_value_info('indices', TensorProto.INT32,
...@@ -5358,7 +5383,7 @@ def scatter_mul_test(): ...@@ -5358,7 +5383,7 @@ def scatter_mul_test():
return ([node], [x, i, u], [y]) return ([node], [x, i, u], [y])
@onnx_test @onnx_test()
def scatter_none_test(): def scatter_none_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
i = helper.make_tensor_value_info('indices', TensorProto.INT32, i = helper.make_tensor_value_info('indices', TensorProto.INT32,
...@@ -5378,7 +5403,7 @@ def scatter_none_test(): ...@@ -5378,7 +5403,7 @@ def scatter_none_test():
return ([node], [x, i, u], [y]) return ([node], [x, i, u], [y])
@onnx_test @onnx_test()
def scatternd_add_test(): def scatternd_add_test():
data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2]) data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
indices = helper.make_tensor_value_info('indices', TensorProto.INT64, indices = helper.make_tensor_value_info('indices', TensorProto.INT64,
...@@ -5396,7 +5421,7 @@ def scatternd_add_test(): ...@@ -5396,7 +5421,7 @@ def scatternd_add_test():
return ([node], [data, indices, updates], [output]) return ([node], [data, indices, updates], [output])
@onnx_test @onnx_test()
def scatternd_mul_test(): def scatternd_mul_test():
data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2]) data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
indices = helper.make_tensor_value_info('indices', TensorProto.INT64, indices = helper.make_tensor_value_info('indices', TensorProto.INT64,
...@@ -5414,7 +5439,7 @@ def scatternd_mul_test(): ...@@ -5414,7 +5439,7 @@ def scatternd_mul_test():
return ([node], [data, indices, updates], [output]) return ([node], [data, indices, updates], [output])
@onnx_test @onnx_test()
def scatternd_test(): def scatternd_test():
data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2]) data = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 2, 2])
indices = helper.make_tensor_value_info('indices', TensorProto.INT64, indices = helper.make_tensor_value_info('indices', TensorProto.INT64,
...@@ -5431,7 +5456,7 @@ def scatternd_test(): ...@@ -5431,7 +5456,7 @@ def scatternd_test():
return ([node], [data, indices, updates], [output]) return ([node], [data, indices, updates], [output])
@onnx_test @onnx_test()
def selu_test(): def selu_test():
x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [2, 3]) x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [2, 3])
y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [2, 3]) y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [2, 3])
...@@ -5445,7 +5470,7 @@ def selu_test(): ...@@ -5445,7 +5470,7 @@ def selu_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def shape_test(): def shape_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 4, 5, 6])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [4]) y = helper.make_tensor_value_info('y', TensorProto.INT64, [4])
...@@ -5459,7 +5484,7 @@ def shape_test(): ...@@ -5459,7 +5484,7 @@ def shape_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def shape_gather_test(): def shape_gather_test():
values = np.array([1]) values = np.array([1])
# value = helper.make_tensor_value_info('value', TensorProto.INT32, [1]) # value = helper.make_tensor_value_info('value', TensorProto.INT32, [1])
...@@ -5494,7 +5519,7 @@ def shape_gather_test(): ...@@ -5494,7 +5519,7 @@ def shape_gather_test():
return ([node_const, node_shape, node_gather], [x], [z]) return ([node_const, node_shape, node_gather], [x], [z])
@onnx_test @onnx_test()
def sign_test(): def sign_test():
x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [10, 5]) x = helper.make_tensor_value_info('x', TensorProto.DOUBLE, [10, 5])
y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [10, 5]) y = helper.make_tensor_value_info('y', TensorProto.DOUBLE, [10, 5])
...@@ -5508,7 +5533,7 @@ def sign_test(): ...@@ -5508,7 +5533,7 @@ def sign_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def sin_test(): def sin_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -5522,7 +5547,7 @@ def sin_test(): ...@@ -5522,7 +5547,7 @@ def sin_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def sinh_test(): def sinh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -5536,7 +5561,7 @@ def sinh_test(): ...@@ -5536,7 +5561,7 @@ def sinh_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def sinh_dynamic_test(): def sinh_dynamic_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [None])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [None])
...@@ -5550,7 +5575,7 @@ def sinh_dynamic_test(): ...@@ -5550,7 +5575,7 @@ def sinh_dynamic_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def size_float_test(): def size_float_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 3, 4])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1]) y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
...@@ -5562,7 +5587,7 @@ def size_float_test(): ...@@ -5562,7 +5587,7 @@ def size_float_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def size_half_test(): def size_half_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [3, 1]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [3, 1])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1]) y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
...@@ -5574,7 +5599,7 @@ def size_half_test(): ...@@ -5574,7 +5599,7 @@ def size_half_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def size_int_test(): def size_int_test():
x = helper.make_tensor_value_info('x', TensorProto.INT32, [8, 2, 3]) x = helper.make_tensor_value_info('x', TensorProto.INT32, [8, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1]) y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
...@@ -5586,7 +5611,7 @@ def size_int_test(): ...@@ -5586,7 +5611,7 @@ def size_int_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def size_verify_test(): def size_verify_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 5, 3])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [1]) y = helper.make_tensor_value_info('y', TensorProto.INT64, [1])
...@@ -5598,7 +5623,7 @@ def size_verify_test(): ...@@ -5598,7 +5623,7 @@ def size_verify_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def slice_test(): def slice_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 2]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3, 2])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 2]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 2])
...@@ -5613,7 +5638,7 @@ def slice_test(): ...@@ -5613,7 +5638,7 @@ def slice_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def slice_3arg_test(): def slice_3arg_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [5, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 5]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 5])
...@@ -5645,7 +5670,7 @@ def slice_3arg_test(): ...@@ -5645,7 +5670,7 @@ def slice_3arg_test():
return ([arg_start, arg_end, node], [x], [y]) return ([arg_start, arg_end, node], [x], [y])
@onnx_test @onnx_test()
def slice_5arg_test(): def slice_5arg_test():
step = np.array([1, 1]) step = np.array([1, 1])
step_tensor = helper.make_tensor(name="step", step_tensor = helper.make_tensor(name="step",
...@@ -5698,7 +5723,7 @@ def slice_5arg_test(): ...@@ -5698,7 +5723,7 @@ def slice_5arg_test():
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y]) return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test @onnx_test()
def slice_5arg_reverse_test(): def slice_5arg_reverse_test():
step = np.array([-1, 1]) step = np.array([-1, 1])
step_tensor = helper.make_tensor(name="step", step_tensor = helper.make_tensor(name="step",
...@@ -5751,7 +5776,7 @@ def slice_5arg_reverse_test(): ...@@ -5751,7 +5776,7 @@ def slice_5arg_reverse_test():
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y]) return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test @onnx_test()
def slice_5arg_step_test(): def slice_5arg_step_test():
step = np.array([-2, 2]) step = np.array([-2, 2])
step_tensor = helper.make_tensor(name="step", step_tensor = helper.make_tensor(name="step",
...@@ -5804,7 +5829,7 @@ def slice_5arg_step_test(): ...@@ -5804,7 +5829,7 @@ def slice_5arg_step_test():
return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y]) return ([arg_step, arg_axis, arg_end, arg_start, node], [x], [y])
@onnx_test @onnx_test()
def slice_max_end_test(): def slice_max_end_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [10, 20]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [10, 20])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [9, 17]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [9, 17])
...@@ -5819,7 +5844,7 @@ def slice_max_end_test(): ...@@ -5819,7 +5844,7 @@ def slice_max_end_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def softmax_test(): def softmax_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 3])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3])
...@@ -5829,7 +5854,7 @@ def softmax_test(): ...@@ -5829,7 +5854,7 @@ def softmax_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def softmax_nonstd_input_test(): def softmax_nonstd_input_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [6, 8]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [6, 8])
y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('2', TensorProto.FLOAT, [3, 4])
...@@ -5846,7 +5871,7 @@ def softmax_nonstd_input_test(): ...@@ -5846,7 +5871,7 @@ def softmax_nonstd_input_test():
return ([node0, node1], [x], [y]) return ([node0, node1], [x], [y])
@onnx_test @onnx_test()
def softmax_dyn_test(): def softmax_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 3, 4, 4]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 3, 4, 4])
...@@ -5856,7 +5881,7 @@ def softmax_dyn_test(): ...@@ -5856,7 +5881,7 @@ def softmax_dyn_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def softsign_test(): def softsign_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [5]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [5])
...@@ -5875,7 +5900,7 @@ def softplus_test(): ...@@ -5875,7 +5900,7 @@ def softplus_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def softsign_nd_test(): def softsign_nd_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [3, 4, 5]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT16, [3, 4, 5])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [3, 4, 5]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT16, [3, 4, 5])
...@@ -5894,7 +5919,7 @@ def softplus_nd_test(): ...@@ -5894,7 +5919,7 @@ def softplus_nd_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def split_minus_axis_test(): def split_minus_axis_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 5]) y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 5])
...@@ -5911,7 +5936,7 @@ def split_minus_axis_test(): ...@@ -5911,7 +5936,7 @@ def split_minus_axis_test():
return ([node], [x], [y1, y2, y3]) return ([node], [x], [y1, y2, y3])
@onnx_test @onnx_test()
def split_test(): def split_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7]) y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7])
...@@ -5927,7 +5952,7 @@ def split_test(): ...@@ -5927,7 +5952,7 @@ def split_test():
return ([node], [x], [y1, y2, y3]) return ([node], [x], [y1, y2, y3])
@onnx_test @onnx_test()
def split_test_default(): def split_test_default():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [5, 15]) y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [5, 15])
...@@ -5942,7 +5967,7 @@ def split_test_default(): ...@@ -5942,7 +5967,7 @@ def split_test_default():
return ([node], [x], [y1, y2]) return ([node], [x], [y1, y2])
@onnx_test @onnx_test()
def split_test_no_attribute(): def split_test_no_attribute():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [300, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [300, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [75, 15]) y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [75, 15])
...@@ -5969,7 +5994,7 @@ def split_test_no_attribute(): ...@@ -5969,7 +5994,7 @@ def split_test_no_attribute():
return ([const_node, node], [x], [y1, y2, y3, y4]) return ([const_node, node], [x], [y1, y2, y3, y4])
@onnx_test @onnx_test()
def split_test_no_attribute_invalid_split(): def split_test_no_attribute_invalid_split():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [300, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [300, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [75, 15]) y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [75, 15])
...@@ -5996,7 +6021,7 @@ def split_test_no_attribute_invalid_split(): ...@@ -5996,7 +6021,7 @@ def split_test_no_attribute_invalid_split():
return ([const_node, node], [x], [y1, y2, y3, y4]) return ([const_node, node], [x], [y1, y2, y3, y4])
@onnx_test @onnx_test()
def split_test_invalid_split(): def split_test_invalid_split():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7]) y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7])
...@@ -6012,7 +6037,7 @@ def split_test_invalid_split(): ...@@ -6012,7 +6037,7 @@ def split_test_invalid_split():
return ([node], [x], [y1, y2, y3]) return ([node], [x], [y1, y2, y3])
@onnx_test @onnx_test()
def split_test_no_attribute_invalid_input_split(): def split_test_no_attribute_invalid_input_split():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7]) y1 = helper.make_tensor_value_info('y1', TensorProto.FLOAT, [10, 7])
...@@ -6028,7 +6053,7 @@ def split_test_no_attribute_invalid_input_split(): ...@@ -6028,7 +6053,7 @@ def split_test_no_attribute_invalid_input_split():
return ([node], [x], [y1, y2, y3]) return ([node], [x], [y1, y2, y3])
@onnx_test @onnx_test()
def sqrt_test(): def sqrt_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10, 15])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10, 15]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10, 15])
...@@ -6042,7 +6067,7 @@ def sqrt_test(): ...@@ -6042,7 +6067,7 @@ def sqrt_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def squeeze_axes_input_test(): def squeeze_axes_input_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 1, 5, 1]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 1, 5, 1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 5]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 5])
...@@ -6059,7 +6084,7 @@ def squeeze_axes_input_test(): ...@@ -6059,7 +6084,7 @@ def squeeze_axes_input_test():
return ([node], [x], [y], [axes_tensor]) return ([node], [x], [y], [axes_tensor])
@onnx_test @onnx_test()
def squeeze_empty_axes_test(): def squeeze_empty_axes_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 1, 5, 1]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [3, 1, 5, 1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 5]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [3, 5])
...@@ -6076,7 +6101,7 @@ def squeeze_empty_axes_test(): ...@@ -6076,7 +6101,7 @@ def squeeze_empty_axes_test():
return ([node], [x], [y], [axes_tensor]) return ([node], [x], [y], [axes_tensor])
@onnx_test @onnx_test()
def squeeze_unsqueeze_test(): def squeeze_unsqueeze_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, 3, 1, 1, 2, 1]) [1, 3, 1, 1, 2, 1])
...@@ -6096,7 +6121,7 @@ def squeeze_unsqueeze_test(): ...@@ -6096,7 +6121,7 @@ def squeeze_unsqueeze_test():
return ([node, node2], [x], [y]) return ([node, node2], [x], [y])
@onnx_test @onnx_test()
def squeeze_unsqueeze_dyn_test(): def squeeze_unsqueeze_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[1, None, 1, 1, None, 1]) [1, None, 1, 1, None, 1])
...@@ -6116,7 +6141,7 @@ def squeeze_unsqueeze_dyn_test(): ...@@ -6116,7 +6141,7 @@ def squeeze_unsqueeze_dyn_test():
return ([node, node2], [x], [y]) return ([node, node2], [x], [y])
@onnx_test @onnx_test()
def sub_bcast_test(): def sub_bcast_test():
arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) arg0 = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4]) arg1 = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
...@@ -6134,7 +6159,7 @@ def sub_bcast_test(): ...@@ -6134,7 +6159,7 @@ def sub_bcast_test():
return ([node], [arg0, arg1], [arg_out]) return ([node], [arg0, arg1], [arg_out])
@onnx_test @onnx_test()
def sub_scalar_test(): def sub_scalar_test():
values = np.array([1]) values = np.array([1])
arg_node = helper.make_tensor_value_info('0', TensorProto.FLOAT, arg_node = helper.make_tensor_value_info('0', TensorProto.FLOAT,
...@@ -6163,7 +6188,7 @@ def sub_scalar_test(): ...@@ -6163,7 +6188,7 @@ def sub_scalar_test():
return ([arg_const, node], [arg_node], [arg_out]) return ([arg_const, node], [arg_node], [arg_out])
@onnx_test @onnx_test()
def sum_int_test(): def sum_int_test():
a = helper.make_tensor_value_info('0', TensorProto.INT16, [3]) a = helper.make_tensor_value_info('0', TensorProto.INT16, [3])
b = helper.make_tensor_value_info('1', TensorProto.UINT16, [3]) b = helper.make_tensor_value_info('1', TensorProto.UINT16, [3])
...@@ -6183,7 +6208,7 @@ def sum_int_test(): ...@@ -6183,7 +6208,7 @@ def sum_int_test():
return ([cnode1, cnode2, node], [a, b, c], [y]) return ([cnode1, cnode2, node], [a, b, c], [y])
@onnx_test @onnx_test()
def sum_test(): def sum_test():
a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3]) a = helper.make_tensor_value_info('0', TensorProto.FLOAT, [3])
b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3]) b = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3])
...@@ -6199,7 +6224,7 @@ def sum_test(): ...@@ -6199,7 +6224,7 @@ def sum_test():
return ([node], [a, b, c], [y]) return ([node], [a, b, c], [y])
@onnx_test @onnx_test()
def sum_type_test(): def sum_type_test():
valb = np.array([1, 0]) valb = np.array([1, 0])
t_bool = helper.make_tensor(name="bool", t_bool = helper.make_tensor(name="bool",
...@@ -6293,7 +6318,7 @@ def sum_type_test(): ...@@ -6293,7 +6318,7 @@ def sum_type_test():
]) ])
@onnx_test @onnx_test()
def tan_test(): def tan_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [10])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [10])
...@@ -6307,7 +6332,7 @@ def tan_test(): ...@@ -6307,7 +6332,7 @@ def tan_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def tanh_test(): def tanh_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [1])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [1])
...@@ -6321,7 +6346,7 @@ def tanh_test(): ...@@ -6321,7 +6346,7 @@ def tanh_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def thresholdedrelu_default_test(): def thresholdedrelu_default_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 3])
...@@ -6333,7 +6358,7 @@ def thresholdedrelu_default_test(): ...@@ -6333,7 +6358,7 @@ def thresholdedrelu_default_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def thresholdedrelu_test(): def thresholdedrelu_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 3]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 3]) y = helper.make_tensor_value_info('y', TensorProto.FLOAT, [2, 2, 3])
...@@ -6347,7 +6372,7 @@ def thresholdedrelu_test(): ...@@ -6347,7 +6372,7 @@ def thresholdedrelu_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def thresholdedrelu_int_test(): def thresholdedrelu_int_test():
x = helper.make_tensor_value_info('x', TensorProto.INT32, [2, 2, 3]) x = helper.make_tensor_value_info('x', TensorProto.INT32, [2, 2, 3])
y = helper.make_tensor_value_info('y', TensorProto.INT32, [2, 2, 3]) y = helper.make_tensor_value_info('y', TensorProto.INT32, [2, 2, 3])
...@@ -6361,7 +6386,7 @@ def thresholdedrelu_int_test(): ...@@ -6361,7 +6386,7 @@ def thresholdedrelu_int_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def tile_test(): def tile_test():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [2]) y = helper.make_tensor_value_info('y', TensorProto.INT64, [2])
...@@ -6373,7 +6398,7 @@ def tile_test(): ...@@ -6373,7 +6398,7 @@ def tile_test():
[helper.make_tensor('y', TensorProto.INT64, [2], [1, 2])]) [helper.make_tensor('y', TensorProto.INT64, [2], [1, 2])])
@onnx_test @onnx_test()
def tile_test_3x2(): def tile_test_3x2():
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2])
y = helper.make_tensor_value_info('y', TensorProto.INT64, [2]) y = helper.make_tensor_value_info('y', TensorProto.INT64, [2])
...@@ -6385,7 +6410,7 @@ def tile_test_3x2(): ...@@ -6385,7 +6410,7 @@ def tile_test_3x2():
[helper.make_tensor('y', TensorProto.INT64, [2], [3, 2])]) [helper.make_tensor('y', TensorProto.INT64, [2], [3, 2])])
@onnx_test @onnx_test()
def topk_attrk_test(): def topk_attrk_test():
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 5, 3, 2]) 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]) val = helper.make_tensor_value_info('val', TensorProto.FLOAT, [2, 2, 3, 2])
...@@ -6399,7 +6424,7 @@ def topk_attrk_test(): ...@@ -6399,7 +6424,7 @@ def topk_attrk_test():
return ([node], [x], [val, ind]) return ([node], [x], [val, ind])
@onnx_test @onnx_test()
def topk_neg_axis_test(): def topk_neg_axis_test():
k = np.array([3]) k = np.array([3])
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [3, 4, 5, 6])
...@@ -6420,7 +6445,7 @@ def topk_neg_axis_test(): ...@@ -6420,7 +6445,7 @@ def topk_neg_axis_test():
return ([node], [x], [val, ind], [k_tensor]) return ([node], [x], [val, ind], [k_tensor])
@onnx_test @onnx_test()
def topk_test(): def topk_test():
k = np.array([4]) k = np.array([4])
x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 5, 3, 2]) x = helper.make_tensor_value_info('data', TensorProto.FLOAT, [2, 5, 3, 2])
...@@ -6454,7 +6479,7 @@ def transpose_default_perm_test(): ...@@ -6454,7 +6479,7 @@ def transpose_default_perm_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def transpose_invalid_perm_test(): def transpose_invalid_perm_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 4, 3]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 2, 2])
...@@ -6469,7 +6494,7 @@ def transpose_invalid_perm_test(): ...@@ -6469,7 +6494,7 @@ def transpose_invalid_perm_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def transpose_test(): def transpose_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [1, 2, 2, 3]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [1, 3, 2, 2])
...@@ -6484,7 +6509,7 @@ def transpose_test(): ...@@ -6484,7 +6509,7 @@ def transpose_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def transpose_dyn_test(): def transpose_dyn_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [None, 2, 2, 3]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [None, 3, 2, 2])
...@@ -6529,7 +6554,7 @@ def transpose_gather_test(): ...@@ -6529,7 +6554,7 @@ def transpose_gather_test():
return ([td, ti, node], [x, i], [y]) return ([td, ti, node], [x, i], [y])
@onnx_test @onnx_test()
def undefined_test(): def undefined_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [2, 3, 4, 5])
...@@ -6539,7 +6564,7 @@ def undefined_test(): ...@@ -6539,7 +6564,7 @@ def undefined_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def unknown_test(): def unknown_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
...@@ -6555,7 +6580,7 @@ def unknown_test(): ...@@ -6555,7 +6580,7 @@ def unknown_test():
return ([node, node2], [x, y], [a]) return ([node, node2], [x, y], [a])
@onnx_test @onnx_test()
def unknown_aten_test(): def unknown_aten_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5]) x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [2, 3, 4, 5])
y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [3, 4])
...@@ -6572,7 +6597,7 @@ def unknown_aten_test(): ...@@ -6572,7 +6597,7 @@ def unknown_aten_test():
return ([node], [x, y], [a]) return ([node], [x, y], [a])
@onnx_test @onnx_test()
def upsample_linear_test(): def upsample_linear_test():
scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32)
scales_tensor = helper.make_tensor(name='scales', scales_tensor = helper.make_tensor(name='scales',
...@@ -6591,7 +6616,7 @@ def upsample_linear_test(): ...@@ -6591,7 +6616,7 @@ def upsample_linear_test():
return ([node], [X], [Y], [scales_tensor]) return ([node], [X], [Y], [scales_tensor])
@onnx_test @onnx_test()
def upsample_test(): def upsample_test():
scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32)
scale_tensor = helper.make_tensor(name='scales', scale_tensor = helper.make_tensor(name='scales',
...@@ -6612,7 +6637,7 @@ def upsample_test(): ...@@ -6612,7 +6637,7 @@ def upsample_test():
return ([node], [X], [Y], [scale_tensor]) return ([node], [X], [Y], [scale_tensor])
@onnx_test @onnx_test()
def variable_batch_test(): def variable_batch_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, x = helper.make_tensor_value_info('0', TensorProto.FLOAT,
[None, 3, 16, 16]) [None, 3, 16, 16])
...@@ -6624,7 +6649,7 @@ def variable_batch_test(): ...@@ -6624,7 +6649,7 @@ def variable_batch_test():
return ([node], [x], [y]) return ([node], [x], [y])
@onnx_test @onnx_test()
def variable_batch_leq_zero_test(): def variable_batch_leq_zero_test():
x = helper.make_tensor_value_info('0', TensorProto.FLOAT, [0, 3, 16, 16]) 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]) y = helper.make_tensor_value_info('1', TensorProto.FLOAT, [-1, 3, 16, 16])
...@@ -6635,7 +6660,7 @@ def variable_batch_leq_zero_test(): ...@@ -6635,7 +6660,7 @@ def variable_batch_leq_zero_test():
return ([node], [x, y], [z]) return ([node], [x, y], [z])
@onnx_test @onnx_test()
def where_test(): def where_test():
c = helper.make_tensor_value_info('c', TensorProto.BOOL, [2]) c = helper.make_tensor_value_info('c', TensorProto.BOOL, [2])
x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2]) x = helper.make_tensor_value_info('x', TensorProto.FLOAT, [2, 2, 2])
......
...@@ -1818,6 +1818,16 @@ migraphx::program create_external_data_prog() ...@@ -1818,6 +1818,16 @@ migraphx::program create_external_data_prog()
return p; return p;
} }
TEST_CASE(external_constant_test)
{
migraphx::program p;
auto* mm = p.get_main_module();
mm->add_literal(migraphx::literal{{migraphx::shape::int64_type, {3}}, {0, 1, 2}});
auto prog = optimize_onnx("external_constant_test.onnx");
EXPECT(p == prog);
}
TEST_CASE(external_data_test) TEST_CASE(external_data_test)
{ {
migraphx::program p = create_external_data_prog(); migraphx::program p = create_external_data_prog();
......
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