mirror of
https://github.com/luxfi/onnx-source-snapshot.git
synced 2026-10-30 15:23:38 +00:00
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
# Copyright (c) ONNX Project Contributors
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING, Any
|
|
|
|
import numpy as np
|
|
|
|
import onnx
|
|
from onnx.backend.test.case.base import Base
|
|
from onnx.backend.test.case.node import expect
|
|
|
|
if TYPE_CHECKING:
|
|
from collections.abc import Sequence
|
|
|
|
|
|
class Concat(Base):
|
|
@staticmethod
|
|
def export() -> None:
|
|
test_cases: dict[str, Sequence[Any]] = {
|
|
"1d": ([1, 2], [3, 4]),
|
|
"2d": ([[1, 2], [3, 4]], [[5, 6], [7, 8]]),
|
|
"3d": (
|
|
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]],
|
|
[[[9, 10], [11, 12]], [[13, 14], [15, 16]]],
|
|
),
|
|
}
|
|
|
|
for test_case, values_ in test_cases.items():
|
|
values = [np.asarray(v, dtype=np.float32) for v in values_]
|
|
for i in range(len(values[0].shape)):
|
|
in_args = ["value" + str(k) for k in range(len(values))]
|
|
node = onnx.helper.make_node(
|
|
"Concat", inputs=list(in_args), outputs=["output"], axis=i
|
|
)
|
|
output = np.concatenate(values, i)
|
|
expect(
|
|
node,
|
|
inputs=list(values),
|
|
outputs=[output],
|
|
name="test_concat_" + test_case + "_axis_" + str(i),
|
|
)
|
|
|
|
for i in range(-len(values[0].shape), 0):
|
|
in_args = ["value" + str(k) for k in range(len(values))]
|
|
node = onnx.helper.make_node(
|
|
"Concat", inputs=list(in_args), outputs=["output"], axis=i
|
|
)
|
|
output = np.concatenate(values, i)
|
|
expect(
|
|
node,
|
|
inputs=list(values),
|
|
outputs=[output],
|
|
name="test_concat_" + test_case + "_axis_negative_" + str(abs(i)),
|
|
)
|