23 lines
631 B
Python
23 lines
631 B
Python
import tensorflow as tf
|
|
|
|
from onnx_tf.handlers.backend_handler import BackendHandler
|
|
from onnx_tf.handlers.handler import onnx_op
|
|
|
|
|
|
@onnx_op("Expand")
|
|
class Expand(BackendHandler):
|
|
|
|
@classmethod
|
|
def version_8(cls, node, **kwargs):
|
|
tensor_dict = kwargs["tensor_dict"]
|
|
x, shape = tensor_dict[node.inputs[0]], tensor_dict[node.inputs[1]]
|
|
|
|
# tf.math.multiply does not support bool therefore use int8
|
|
if x.dtype is tf.bool:
|
|
ones = tf.ones(shape, dtype=tf.int8)
|
|
r = tf.cast(x, tf.int8) * ones
|
|
return [tf.cast(r, tf.bool)]
|
|
else:
|
|
ones = tf.ones(shape, dtype=x.dtype)
|
|
return [x * ones]
|