| @@ -33,7 +33,7 @@ class FlattenCPUKernel : public LiteKernel { | |||||
| : LiteKernel(parameter, inputs, outputs, ctx, primitive) { | : LiteKernel(parameter, inputs, outputs, ctx, primitive) { | ||||
| flatten_param_ = reinterpret_cast<FlattenParameter *>(parameter); | flatten_param_ = reinterpret_cast<FlattenParameter *>(parameter); | ||||
| } | } | ||||
| ~FlattenCPUKernel() override { delete flatten_param_; } | |||||
| ~FlattenCPUKernel() override = default;; | |||||
| int Init() override; | int Init() override; | ||||
| int ReSize() override; | int ReSize() override; | ||||
| @@ -0,0 +1,38 @@ | |||||
| /** | |||||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| #include <memory> | |||||
| #include "mindspore/lite/tools/converter/parser/caffe/caffe_flatten_parser.h" | |||||
| namespace mindspore { | |||||
| namespace lite { | |||||
| STATUS CaffeFlattenParser::Parse(const caffe::LayerParameter &proto, const caffe::LayerParameter &weight, | |||||
| schema::CNodeT *op, std::vector<schema::TensorT *> *weightVec) { | |||||
| if (op == nullptr) { | |||||
| // MS_LOGE("null pointer dereferencing."); | |||||
| return RET_NULL_PTR; | |||||
| } | |||||
| std::unique_ptr<schema::ReshapeT> attr(new schema::ReshapeT()); | |||||
| attr->format = schema::Format_NCHW; | |||||
| op->primitive = std::make_unique<schema::PrimitiveT>(); | |||||
| op->primitive->value.type = schema::PrimitiveType_Flatten; | |||||
| op->primitive->value.value = attr.release(); | |||||
| return RET_OK; | |||||
| } | |||||
| CaffeNodeRegistrar g_CaffeFlattenParser("Flatten", new CaffeFlattenParser()); | |||||
| } // namespace lite | |||||
| } // namespace mindspore | |||||
| @@ -0,0 +1,36 @@ | |||||
| /** | |||||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| #ifndef PREDICT_CONVERTER_PARSER_CAFFE_CAFFE_FLATTEN_PARSER_H_ | |||||
| #define PREDICT_CONVERTER_PARSER_CAFFE_CAFFE_FLATTEN_PARSER_H_ | |||||
| #include <vector> | |||||
| #include "mindspore/lite/tools/converter/parser/caffe/caffe_node_parser.h" | |||||
| #include "mindspore/lite/tools/converter/parser/caffe/caffe_node_parser_registry.h" | |||||
| namespace mindspore { | |||||
| namespace lite { | |||||
| class CaffeFlattenParser : public CaffeNodeParser { | |||||
| public: | |||||
| CaffeFlattenParser() : CaffeNodeParser("flatten") {} | |||||
| STATUS Parse(const caffe::LayerParameter &proto, const caffe::LayerParameter &weight, schema::CNodeT *op, | |||||
| std::vector<schema::TensorT *> *weightVec) override; | |||||
| }; | |||||
| } // namespace lite | |||||
| } // namespace mindspore | |||||
| #endif // PREDICT_CONVERTER_PARSER_CAFFE_CAFFE_FLATTEN_PARSER_H_ | |||||