This commit is contained in:
@@ -1053,6 +1053,92 @@ def reducemean_large_dimension_1024():
|
||||
save_model(model, "reduce_mean/large_dimension_1024", "reduce_mean_large_dimension_1024.onnx")
|
||||
|
||||
|
||||
def make_legacy_reducemean_model(name, shape, output_shape, directory, filename, *, axes, keepdims=1,
|
||||
noop_with_empty_axes=0):
|
||||
"""Create an opset-18 ReduceMean model that lowers to ONNXReduceMeanOp."""
|
||||
X = helper.make_tensor_value_info("X", TensorProto.FLOAT, shape)
|
||||
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, output_shape)
|
||||
|
||||
initializers = []
|
||||
node_inputs = ["X", ""]
|
||||
if axes is not None:
|
||||
initializers.append(make_int64_initializer("axes", axes))
|
||||
node_inputs = ["X", "axes"]
|
||||
|
||||
node = helper.make_node("ReduceMean", node_inputs, ["Y"],
|
||||
keepdims=keepdims, noop_with_empty_axes=noop_with_empty_axes)
|
||||
graph = helper.make_graph([node], name, [X], [Y], initializer=initializers)
|
||||
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 18)])
|
||||
save_model(model, directory, filename)
|
||||
|
||||
|
||||
def reducemean_legacy_axis1_keepdims_1():
|
||||
"""Opset-18 ReduceMean over one positive axis, preserving rank."""
|
||||
make_legacy_reducemean_model("reducemean_legacy_axis1_keepdims_1",
|
||||
[2, 3, 4], [2, 1, 4],
|
||||
"reduce_mean/legacy_axis1_keepdims_1",
|
||||
"reduce_mean_legacy_axis1_keepdims_1.onnx",
|
||||
axes=[1], keepdims=1)
|
||||
|
||||
|
||||
def reducemean_legacy_axis1_keepdims_0():
|
||||
"""Opset-18 ReduceMean over one positive axis, dropping the reduced axis."""
|
||||
make_legacy_reducemean_model("reducemean_legacy_axis1_keepdims_0",
|
||||
[2, 3, 4], [2, 4],
|
||||
"reduce_mean/legacy_axis1_keepdims_0",
|
||||
"reduce_mean_legacy_axis1_keepdims_0.onnx",
|
||||
axes=[1], keepdims=0)
|
||||
|
||||
|
||||
def reducemean_legacy_axes_1_2_keepdims_1():
|
||||
"""Opset-18 ReduceMean over multiple positive axes."""
|
||||
make_legacy_reducemean_model("reducemean_legacy_axes_1_2_keepdims_1",
|
||||
[2, 3, 4], [2, 1, 1],
|
||||
"reduce_mean/legacy_axes_1_2_keepdims_1",
|
||||
"reduce_mean_legacy_axes_1_2_keepdims_1.onnx",
|
||||
axes=[1, 2], keepdims=1)
|
||||
|
||||
|
||||
def reducemean_legacy_negative_axis():
|
||||
"""Opset-18 ReduceMean using a negative axis."""
|
||||
make_legacy_reducemean_model("reducemean_legacy_negative_axis",
|
||||
[2, 3, 4], [2, 3, 1],
|
||||
"reduce_mean/legacy_negative_axis",
|
||||
"reduce_mean_legacy_negative_axis.onnx",
|
||||
axes=[-1], keepdims=1)
|
||||
|
||||
|
||||
def reducemean_legacy_reduce_all_keepdims_1():
|
||||
"""Opset-18 ReduceMean over all axes with the optional axes input omitted."""
|
||||
make_legacy_reducemean_model("reducemean_legacy_reduce_all_keepdims_1",
|
||||
[2, 3, 4], [1, 1, 1],
|
||||
"reduce_mean/legacy_reduce_all_keepdims_1",
|
||||
"reduce_mean_legacy_reduce_all_keepdims_1.onnx",
|
||||
axes=None, keepdims=1)
|
||||
|
||||
|
||||
def reducemean_legacy_empty_axes_noop():
|
||||
"""Opset-18 ReduceMean with empty axes and noop_with_empty_axes enabled."""
|
||||
X = helper.make_tensor_value_info("X", TensorProto.FLOAT, [3, 4])
|
||||
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [3, 4])
|
||||
axes = make_int64_initializer("axes", [])
|
||||
reduce = helper.make_node("ReduceMean", ["X", "axes"], ["R"],
|
||||
keepdims=1, noop_with_empty_axes=1)
|
||||
relu = helper.make_node("Relu", ["R"], ["Y"])
|
||||
graph = helper.make_graph([reduce, relu], "reducemean_legacy_empty_axes_noop", [X], [Y], initializer=[axes])
|
||||
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 18)])
|
||||
save_model(model, "reduce_mean/legacy_empty_axes_noop", "reduce_mean_legacy_empty_axes_noop.onnx")
|
||||
|
||||
|
||||
def reducemean_legacy_nchw_spatial():
|
||||
"""Opset-18 ReduceMean over H and W on an NCHW tensor."""
|
||||
make_legacy_reducemean_model("reducemean_legacy_nchw_spatial",
|
||||
[1, 3, 5, 5], [1, 3, 1, 1],
|
||||
"reduce_mean/legacy_nchw_spatial",
|
||||
"reduce_mean_legacy_nchw_spatial.onnx",
|
||||
axes=[2, 3], keepdims=1)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Relu tests
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -1974,6 +2060,13 @@ if __name__ == "__main__":
|
||||
reducemean_4d_spatial_keepdims_0()
|
||||
reducemean_channel_axis_nchw()
|
||||
reducemean_large_dimension_1024()
|
||||
reducemean_legacy_axis1_keepdims_1()
|
||||
reducemean_legacy_axis1_keepdims_0()
|
||||
reducemean_legacy_axes_1_2_keepdims_1()
|
||||
reducemean_legacy_negative_axis()
|
||||
reducemean_legacy_reduce_all_keepdims_1()
|
||||
reducemean_legacy_empty_axes_noop()
|
||||
reducemean_legacy_nchw_spatial()
|
||||
|
||||
print("\nGenerating Relu tests:")
|
||||
relu_basic()
|
||||
|
||||
Reference in New Issue
Block a user