diff options
Diffstat (limited to 'compiler/moco/import/include/moco/Import/Nodes')
32 files changed, 1157 insertions, 0 deletions
diff --git a/compiler/moco/import/include/moco/Import/Nodes/Add.h b/compiler/moco/import/include/moco/Import/Nodes/Add.h new file mode 100644 index 000000000..3d0d0f30f --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Add.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_ADD_H__ +#define __MOCO_IMPORT_OP_ADD_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Add node + */ +class AddGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_ADD_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/AvgPool.h b/compiler/moco/import/include/moco/Import/Nodes/AvgPool.h new file mode 100644 index 000000000..4c8087afe --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/AvgPool.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_AVG_POOL_H__ +#define __MOCO_IMPORT_OP_AVG_POOL_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class AvgPoolGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_AVG_POOL_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/BiasAdd.h b/compiler/moco/import/include/moco/Import/Nodes/BiasAdd.h new file mode 100644 index 000000000..214df03de --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/BiasAdd.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_BIAS_ADD_H__ +#define __MOCO_IMPORT_OP_BIAS_ADD_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class BiasAddGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_BIAS_ADD_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Concat.h b/compiler/moco/import/include/moco/Import/Nodes/Concat.h new file mode 100644 index 000000000..2341fb00c --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Concat.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_CONCAT_H__ +#define __MOCO_IMPORT_OP_CONCAT_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class ConcatV2GraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_CONCAT_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Const.h b/compiler/moco/import/include/moco/Import/Nodes/Const.h new file mode 100644 index 000000000..1ce378219 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Const.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_CONST_H__ +#define __MOCO_IMPORT_OP_CONST_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class ConstGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_CONST_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Conv2D.h b/compiler/moco/import/include/moco/Import/Nodes/Conv2D.h new file mode 100644 index 000000000..3bd3dc74a --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Conv2D.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_CONV_2D_H__ +#define __MOCO_IMPORT_OP_CONV_2D_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class Conv2DGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_CONV_2D_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Conv2DBackpropInput.h b/compiler/moco/import/include/moco/Import/Nodes/Conv2DBackpropInput.h new file mode 100644 index 000000000..262a443fe --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Conv2DBackpropInput.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_CONV_2D_BACKPROP_INPUT_H__ +#define __MOCO_IMPORT_OP_CONV_2D_BACKPROP_INPUT_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Conv2DBackpropInput node + */ +class Conv2DBackpropInputGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_CONV_2D_BACKPROP_INPUT_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/DepthwiseConv2dNative.h b/compiler/moco/import/include/moco/Import/Nodes/DepthwiseConv2dNative.h new file mode 100644 index 000000000..1dcbba1eb --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/DepthwiseConv2dNative.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_DEPTHWISE_CONV_2D_NATIVE_H__ +#define __MOCO_IMPORT_OP_DEPTHWISE_CONV_2D_NATIVE_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for DepthwiseConv2dNative node + */ +class DepthwiseConv2dNativeGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_DEPTHWISE_CONV_2D_NATIVE_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/FakeQuantWithMinMaxVars.h b/compiler/moco/import/include/moco/Import/Nodes/FakeQuantWithMinMaxVars.h new file mode 100644 index 000000000..9e223c18e --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/FakeQuantWithMinMaxVars.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_FAKE_QUANT_WITH_MINMAX_VARS_H__ +#define __MOCO_IMPORT_OP_FAKE_QUANT_WITH_MINMAX_VARS_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for FakeQuantWithMinMaxVars node + */ +class FakeQuantWithMinMaxVarsGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_FAKE_QUANT_WITH_MINMAX_VARS_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/FusedBatchNorm.h b/compiler/moco/import/include/moco/Import/Nodes/FusedBatchNorm.h new file mode 100644 index 000000000..38d1d5682 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/FusedBatchNorm.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_FUSED_BATCH_NORM_H__ +#define __MOCO_IMPORT_OP_FUSED_BATCH_NORM_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for FusedBatchNorm node + */ +class FusedBatchNormGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_FUSED_BATCH_NORM_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Identity.h b/compiler/moco/import/include/moco/Import/Nodes/Identity.h new file mode 100644 index 000000000..29e04800f --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Identity.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_IDENTITY_H__ +#define __MOCO_IMPORT_OP_IDENTITY_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class IdentityGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_IDENTITY_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/MaxPool.h b/compiler/moco/import/include/moco/Import/Nodes/MaxPool.h new file mode 100644 index 000000000..696fa71e6 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/MaxPool.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_MAX_POOL_H__ +#define __MOCO_IMPORT_OP_MAX_POOL_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class MaxPoolGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_MAX_POOL_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Maximum.h b/compiler/moco/import/include/moco/Import/Nodes/Maximum.h new file mode 100644 index 000000000..69d897742 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Maximum.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2020 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_IMPORT_OP_MAXIMUM_H__ +#define __MOCO_IMPORT_OP_MAXIMUM_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Maximum node + */ +class MaximumGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_MAXIMUM_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Mean.h b/compiler/moco/import/include/moco/Import/Nodes/Mean.h new file mode 100644 index 000000000..7bae1bb39 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Mean.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_MEAN_H__ +#define __MOCO_IMPORT_OP_MEAN_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Mean node + */ +class MeanGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_MEAN_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Mul.h b/compiler/moco/import/include/moco/Import/Nodes/Mul.h new file mode 100644 index 000000000..667c81954 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Mul.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_MUL_H__ +#define __MOCO_IMPORT_OP_MUL_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Mul node + */ +class MulGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_MUL_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Pack.h b/compiler/moco/import/include/moco/Import/Nodes/Pack.h new file mode 100644 index 000000000..94666ad51 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Pack.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_PACK_H__ +#define __MOCO_IMPORT_OP_PACK_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class PackGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_PACK_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Pad.h b/compiler/moco/import/include/moco/Import/Nodes/Pad.h new file mode 100644 index 000000000..22eab32ac --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Pad.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_PAD_H__ +#define __MOCO_IMPORT_OP_PAD_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Pad node + */ +class PadGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_PAD_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Placeholder.h b/compiler/moco/import/include/moco/Import/Nodes/Placeholder.h new file mode 100644 index 000000000..458600915 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Placeholder.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_PLACEHOLDER_H__ +#define __MOCO_IMPORT_OP_PLACEHOLDER_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Placeholder node + */ +class PlaceholderGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_PLACEHOLDER_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/RealDiv.h b/compiler/moco/import/include/moco/Import/Nodes/RealDiv.h new file mode 100644 index 000000000..142e8b5f8 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/RealDiv.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_REALDIV_H__ +#define __MOCO_IMPORT_OP_REALDIV_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for RealDiv node + */ +class RealDivGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_REALDIV_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Relu.h b/compiler/moco/import/include/moco/Import/Nodes/Relu.h new file mode 100644 index 000000000..0bd9cff04 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Relu.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_RELU_H__ +#define __MOCO_IMPORT_OP_RELU_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Relu node + */ +class ReluGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_RELU_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Relu6.h b/compiler/moco/import/include/moco/Import/Nodes/Relu6.h new file mode 100644 index 000000000..d211b0543 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Relu6.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_RELU6_H__ +#define __MOCO_IMPORT_OP_RELU6_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Relu6 node + */ +class Relu6GraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_RELU6_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Reshape.h b/compiler/moco/import/include/moco/Import/Nodes/Reshape.h new file mode 100644 index 000000000..e8bfeee23 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Reshape.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_RESHAPE_H__ +#define __MOCO_IMPORT_OP_RESHAPE_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Reshape node + */ +class ReshapeGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_RESHAPE_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Rsqrt.h b/compiler/moco/import/include/moco/Import/Nodes/Rsqrt.h new file mode 100644 index 000000000..dedc52323 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Rsqrt.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_RSQRT_H__ +#define __MOCO_IMPORT_OP_RSQRT_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Rsqrt node + */ +class RsqrtGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_RSQRT_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Shape.h b/compiler/moco/import/include/moco/Import/Nodes/Shape.h new file mode 100644 index 000000000..e36e1d546 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Shape.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_SHAPE_H__ +#define __MOCO_IMPORT_OP_SHAPE_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Shape node + */ +class ShapeGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_SHAPE_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Softmax.h b/compiler/moco/import/include/moco/Import/Nodes/Softmax.h new file mode 100644 index 000000000..43fbb8852 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Softmax.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_SOFTMAX_H__ +#define __MOCO_IMPORT_OP_SOFTMAX_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** +* @brief GraphBuilder for Softmax node +*/ +class SoftmaxGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_SOFTMAX_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Sqrt.h b/compiler/moco/import/include/moco/Import/Nodes/Sqrt.h new file mode 100644 index 000000000..d17dc3494 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Sqrt.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_SQRT_H__ +#define __MOCO_IMPORT_OP_SQRT_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Sqrt node + */ +class SqrtGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_SQRT_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/SquaredDifference.h b/compiler/moco/import/include/moco/Import/Nodes/SquaredDifference.h new file mode 100644 index 000000000..501464d65 --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/SquaredDifference.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_SQUARED_DIFFERENCE_H__ +#define __MOCO_IMPORT_OP_SQUARED_DIFFERENCE_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for SquaredDifference node + */ +class SquaredDifferenceGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_SQUARED_DIFFERENCE_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Squeeze.h b/compiler/moco/import/include/moco/Import/Nodes/Squeeze.h new file mode 100644 index 000000000..64ead074b --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Squeeze.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_SQUEEZE_H__ +#define __MOCO_IMPORT_OP_SQUEEZE_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Squeeze node + */ +class SqueezeGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_SQUEEZE_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/StopGradient.h b/compiler/moco/import/include/moco/Import/Nodes/StopGradient.h new file mode 100644 index 000000000..e547a8a8b --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/StopGradient.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_STOP_GRADIENT_H__ +#define __MOCO_IMPORT_OP_STOP_GRADIENT_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for StopGradient node + */ +class StopGradientGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_STOP_GRADIENT_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/StridedSlice.h b/compiler/moco/import/include/moco/Import/Nodes/StridedSlice.h new file mode 100644 index 000000000..61170ebbf --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/StridedSlice.h @@ -0,0 +1,34 @@ +/* + * 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_IMPORT_OP_STRIDEDSLICE_H__ +#define __MOCO_IMPORT_OP_STRIDEDSLICE_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +class StridedSliceGraphBuilder : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const final; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const final; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_STRIDEDSLICE_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Sub.h b/compiler/moco/import/include/moco/Import/Nodes/Sub.h new file mode 100644 index 000000000..d6351e34a --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Sub.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_SUB_H__ +#define __MOCO_IMPORT_OP_SUB_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Sub node + */ +class SubGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_SUB_H__ diff --git a/compiler/moco/import/include/moco/Import/Nodes/Tanh.h b/compiler/moco/import/include/moco/Import/Nodes/Tanh.h new file mode 100644 index 000000000..183e117ef --- /dev/null +++ b/compiler/moco/import/include/moco/Import/Nodes/Tanh.h @@ -0,0 +1,37 @@ +/* + * 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_IMPORT_OP_TANH_H__ +#define __MOCO_IMPORT_OP_TANH_H__ + +#include "moco/Import/GraphBuilder.h" + +namespace moco +{ + +/** + * @brief GraphBuilder for Tanh node + */ +class TanhGraphBuilder final : public GraphBuilder +{ +public: + bool validate(const tensorflow::NodeDef &) const override; + void build(const tensorflow::NodeDef &, GraphBuilderContext *) const override; +}; + +} // namespace moco + +#endif // __MOCO_IMPORT_OP_TANH_H__ |