2 * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
26 std::vector<int32_t> vector_new_shape(const tflchef::ReshapeOptions &options)
28 std::vector<int32_t> shapes;
30 for (int i = 0; i < options.new_shape_size(); ++i)
32 shapes.push_back(options.new_shape(i));
40 flatbuffers::Offset<void> ReshapeChef::value(flatbuffers::FlatBufferBuilder &fbb) const
42 auto &operation = (*_operation);
44 if (!operation.has_reshape_options())
47 auto options = operation.reshape_options();
48 auto shapes = vector_new_shape(options);
49 // Note: 'CreateVector' should be placed before 'options_builder'
50 // Read flatbuffers.h 'void NotNested()' for more information
51 auto fb_new_shape = fbb.CreateVector(shapes);
53 tflite::ReshapeOptionsBuilder options_builder{fbb};
55 options_builder.add_new_shape(fb_new_shape);
57 return options_builder.Finish().Union();
60 std::unique_ptr<OpChef> ReshapeChefFactory::create(const tflchef::Operation *operation) const
62 return std::unique_ptr<OpChef>{new ReshapeChef{operation}};