From 4f7dee2a4a3fd2c6caf6d7b9ba240594159bd636 Mon Sep 17 00:00:00 2001 From: xuanyue Date: Thu, 20 Aug 2020 17:44:02 +0800 Subject: [PATCH] add caffe parser --- .../parser/caffe/caffe_tanh_parser.cc | 38 +++++++++++++++++++ .../parser/caffe/caffe_tanh_parser.h | 36 ++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.cc create mode 100644 mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.h diff --git a/mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.cc b/mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.cc new file mode 100644 index 00000000000..20aff695fdb --- /dev/null +++ b/mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.cc @@ -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 "tools/converter/parser/caffe/caffe_tanh_parser.h" +#include +#include + +namespace mindspore { +namespace lite { +STATUS CaffeTanhParser::Parse(const caffe::LayerParameter &proto, + const caffe::LayerParameter &weight, + schema::CNodeT *op, + std::vector *weightVec) { + std::unique_ptr attr(new schema::ActivationT()); + attr->type = schema::ActivationType_TANH; + op->primitive = std::make_unique(); + op->primitive->value.value = attr.release(); + op->primitive->value.type = schema::PrimitiveType_Activation; + return RET_OK; +} + +CaffeNodeRegistrar g_caffeTanhParser("Tanh", new CaffeTanhParser()); +} // namespace lite +} // namespace mindspore + diff --git a/mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.h b/mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.h new file mode 100644 index 00000000000..7e5e0da6ab5 --- /dev/null +++ b/mindspore/lite/tools/converter/parser/caffe/caffe_tanh_parser.h @@ -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 LITE_CAFFE_TANH_PARSER_H +#define LITE_CAFFE_TANH_PARSER_H + +#include +#include "tools/converter/parser/caffe/caffe_node_parser.h" +#include "tools/converter/parser/caffe/caffe_node_parser_registry.h" + +namespace mindspore { +namespace lite { +class CaffeTanhParser : public CaffeNodeParser { + public: + CaffeTanhParser() : CaffeNodeParser("tanh") {} + + STATUS Parse(const caffe::LayerParameter &proto, const caffe::LayerParameter &weight, schema::CNodeT *op, + std::vector *weightVec) override; +}; +} // namespace lite +} // namespace mindspore + +#endif // LITE_CAFFE_TANH_PARSER_H