From: 박세희/On-Device Lab(SR)/Principal Engineer/삼성전자 Date: Tue, 2 Jul 2019 22:26:17 +0000 (+0900) Subject: [moco/tf] Introduce TFAdd IR (#4051) X-Git-Tag: nncc_backup~214 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8245ff0c831182b876b79fcad93e2960fe2b0522;p=platform%2Fcore%2Fml%2Fnnfw.git [moco/tf] Introduce TFAdd IR (#4051) * [moco/tf] Introduce TFAdd IR This will introduce TensorFlow dialect Add IR - this will be used as intermediate node while resolving FusedBatchNorm node Signed-off-by: SaeHie Park * apply comments * another comment * privode GraphDef example --- diff --git a/contrib/moco-tf/src/Dialect/TFNodes.h b/contrib/moco-tf/src/Dialect/TFNodes.h index 5b7130c..3366cb8 100644 --- a/contrib/moco-tf/src/Dialect/TFNodes.h +++ b/contrib/moco-tf/src/Dialect/TFNodes.h @@ -17,6 +17,7 @@ #ifndef __MOCO_TF_DIALECT_TFNODES_H__ #define __MOCO_TF_DIALECT_TFNODES_H__ +#include "IR/TFAdd.h" #include "IR/TFFusedBatchNorm.h" #endif // __MOCO_TF_DIALECT_TFNODES_H__ diff --git a/contrib/moco-tf/src/Dialect/TFNodes.lst b/contrib/moco-tf/src/Dialect/TFNodes.lst index dacaba7..eb52619 100644 --- a/contrib/moco-tf/src/Dialect/TFNodes.lst +++ b/contrib/moco-tf/src/Dialect/TFNodes.lst @@ -7,4 +7,5 @@ // // TENSORFLOW_NODE(OPCODE, CLASS) +TENSORFLOW_NODE(Add, TFAdd) TENSORFLOW_NODE(FusedBatchNorm, TFFusedBatchNorm) diff --git a/contrib/moco-tf/src/IR/TFAdd.h b/contrib/moco-tf/src/IR/TFAdd.h new file mode 100644 index 0000000..7042630 --- /dev/null +++ b/contrib/moco-tf/src/IR/TFAdd.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved + * + * 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 __MOCO_TF_IR_TFADD_H__ +#define __MOCO_TF_IR_TFADD_H__ + +#include "Dialect/TFNodeDecl.h" + +namespace moco +{ +namespace tf +{ + +/// @note TFAdd corresponds to the following GraphDef +/* +node { + name: "add" + op: "Add" + input: "x" + input: "y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +*/ + +class TFAdd final : public loco::FixedArityNode<2, TFNodeImpl> +{ +public: + TFAdd() = default; + +public: + Node *x(void) const { return at(0)->node(); } + void x(Node *node) { at(0)->node(node); } + + Node *y(void) const { return at(1)->node(); } + void y(Node *node) { at(1)->node(node); } +}; + +} // namespace tf +} // namespace moco + +#endif // __MOCO_TF_IR_TFADD_H__ diff --git a/contrib/moco-tf/src/IR/TFAdd.test.cpp b/contrib/moco-tf/src/IR/TFAdd.test.cpp new file mode 100644 index 0000000..3134f86 --- /dev/null +++ b/contrib/moco-tf/src/IR/TFAdd.test.cpp @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved + * + * 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 "IR/TFAdd.h" + +#include "Dialect/TFDialect.h" + +#include + +TEST(TFAddTest, constructor) +{ + moco::tf::TFAdd add_node; + + ASSERT_EQ(add_node.dialect(), moco::tf::TFDialect::get()); + ASSERT_EQ(add_node.opcode(), moco::tf::TFOpcode::Add); + + ASSERT_EQ(add_node.x(), nullptr); + ASSERT_EQ(add_node.y(), nullptr); +}