27 if (args.op.inputs.size() != 1 && args.op.inputs.size() != 2)
30 if (args.op.outputs.size() != 1)
34 if (args.op.inputs.size() == 2)
36 const auto &inputs = args.op.inputs;
37 const auto tensors = args.reader.tensors();
38 const auto tensor_in = tensors.at(inputs.at(1));
41 if (
tensor_in->type() != circle::TensorType::TensorType_INT32 &&
42 tensor_in->type() != circle::TensorType::TensorType_INT64)
49static void setup_shape_attribute(
const std::vector<int32_t> &shape,
CircleReshape *node)
58static CircleNode *create_shape_node(
const std::vector<int32_t> &shape,
loco::Graph *graph)
64 shape_node->size<loco::DataType::S32>(shape.size());
73CircleNode *CircleReshapeGraphBuilder::build_node(
const circle::OperatorT &op,
74 const std::vector<CircleNode *> &inputs,
82 const auto *
options = op.builtin_options.AsReshapeOptions();
83 if (options !=
nullptr)
94 auto *node =
graph->nodes()->create<CircleReshape>();
98 const auto *
options = op.builtin_options.AsReshapeOptions();
100 setup_shape_attribute(
options->new_shape, node);
Class to build tensor data.
uint32_t size(void) const
uint32_t rank(void) const
int32_t dim(uint32_t n) const
bool validate(const ValidateArgs &args) const final
const Shape * newShape(void) const
loco::Node * shape(void) const
loco::Node * tensor(void) const
T must_cast(loco::Node *node)