17 lines
467 B
Python
17 lines
467 B
Python
# Copyright (c) ONNX Project Contributors
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
from __future__ import annotations
|
|
|
|
import numpy as np
|
|
|
|
from onnx.reference.ops._op import OpRunUnary
|
|
|
|
|
|
class Flatten(OpRunUnary):
|
|
def _run(self, x, axis=None): # type: ignore
|
|
i = axis or self.axis # type: ignore
|
|
shape = x.shape
|
|
new_shape = (1, -1) if i == 0 else (np.prod(shape[:i]).astype(int), -1)
|
|
return (x.reshape(new_shape),) # type: ignore
|