From 2e78ac0f72d13c237f7b35a2169b1b4ed65bc625 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EB=B0=95=EC=84=B8=ED=9D=AC/On-Device=20Lab=28SR=29/Princip?= =?utf8?q?al=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Tue, 29 Oct 2019 09:04:32 +0900 Subject: [PATCH] [moco-tf] Use TFShapeInferenceHelper from moco (#8545) This will update to use TFShapeInferenceHelper from moco Signed-off-by: SaeHie Park --- compiler/moco-tf/CMakeLists.txt | 1 + .../src/Canonicalization/AvgPoolCanonicalizer.cpp | 14 +++++++------- .../moco-tf/src/Canonicalization/Conv2DCanonicalizer.cpp | 16 ++++++++-------- .../DepthwiseConv2dNativeCanonicalizer.cpp | 16 ++++++++-------- .../src/Canonicalization/MaxPoolCanonicalizer.cpp | 14 +++++++------- 5 files changed, 31 insertions(+), 30 deletions(-) diff --git a/compiler/moco-tf/CMakeLists.txt b/compiler/moco-tf/CMakeLists.txt index 812814d..224c12c 100644 --- a/compiler/moco-tf/CMakeLists.txt +++ b/compiler/moco-tf/CMakeLists.txt @@ -15,6 +15,7 @@ target_link_libraries(moco_tf_frontend PUBLIC moco_import) target_link_libraries(moco_tf_frontend PUBLIC moco_pass) target_link_libraries(moco_tf_frontend PUBLIC mio_tf) target_link_libraries(moco_tf_frontend PRIVATE moco_service) +target_link_libraries(moco_tf_frontend PRIVATE moco_support) target_link_libraries(moco_tf_frontend PRIVATE bino) target_link_libraries(moco_tf_frontend PRIVATE fipe) target_link_libraries(moco_tf_frontend PRIVATE locop) diff --git a/compiler/moco-tf/src/Canonicalization/AvgPoolCanonicalizer.cpp b/compiler/moco-tf/src/Canonicalization/AvgPoolCanonicalizer.cpp index 924121c..e07a4f6 100644 --- a/compiler/moco-tf/src/Canonicalization/AvgPoolCanonicalizer.cpp +++ b/compiler/moco-tf/src/Canonicalization/AvgPoolCanonicalizer.cpp @@ -15,9 +15,9 @@ */ #include "AvgPoolCanonicalizer.h" -#include "TFShapeInferenceHelper.h" #include +#include #include "CodecHelper.h" @@ -61,20 +61,20 @@ bool canonicalize_avgpool2d(loco::Graph *graph, moco::TFAvgPool *node) avgPool2d_node->convention(loco::AvgPool2D::Convention::Valid); - auto value_shape = moco::tf::node_shape(node->value()); + auto value_shape = moco::node_shape(node->value()); assert(value_shape.domain() != loco::Domain::Unknown); - auto node_stride = moco::tf::stride_of(node->strides(), node->data_layout()); - auto node_window = moco::tf::window_of(node->ksize(), node->data_layout()); + auto node_stride = moco::stride_of(node->strides(), node->data_layout()); + auto node_window = moco::window_of(node->ksize(), node->data_layout()); - moco::tf::Padding2DInference infer_padding2d; + moco::Padding2DInference infer_padding2d; infer_padding2d.padding(node->padding()); infer_padding2d.stride(node_stride); infer_padding2d.window(node_window); - auto input_feature_shape = moco::tf::as_feature_shape(value_shape, node->data_layout()); - auto input_plane_shape = moco::tf::make_plane_shape(input_feature_shape); + auto input_feature_shape = moco::as_feature_shape(value_shape, node->data_layout()); + auto input_plane_shape = moco::make_plane_shape(input_feature_shape); *avgPool2d_node->pad() = infer_padding2d(input_plane_shape); *avgPool2d_node->stride() = node_stride; diff --git a/compiler/moco-tf/src/Canonicalization/Conv2DCanonicalizer.cpp b/compiler/moco-tf/src/Canonicalization/Conv2DCanonicalizer.cpp index ea8dde4..a955793 100644 --- a/compiler/moco-tf/src/Canonicalization/Conv2DCanonicalizer.cpp +++ b/compiler/moco-tf/src/Canonicalization/Conv2DCanonicalizer.cpp @@ -15,9 +15,9 @@ */ #include "Conv2DCanonicalizer.h" -#include "TFShapeInferenceHelper.h" #include +#include #include "CodecHelper.h" @@ -78,23 +78,23 @@ bool canonicalize_conv2d(loco::Graph *graph, moco::TFConv2D *node) set_filter_enc(filter_enc); set_feature_dec(feature_dec, data_layout); - auto input_shape = moco::tf::node_shape(node->input()); + auto input_shape = moco::node_shape(node->input()); assert(input_shape.domain() != loco::Domain::Unknown); - auto ker_shape = moco::tf::node_shape(node->filter()); + auto ker_shape = moco::node_shape(node->filter()); auto ker_tensor_shape = ker_shape.as(); // in HWIO - auto node_stride = moco::tf::stride_of(node->strides(), node->data_layout()); - auto node_window = moco::tf::window_of(ker_tensor_shape, "HWIO"); + auto node_stride = moco::stride_of(node->strides(), node->data_layout()); + auto node_window = moco::window_of(ker_tensor_shape, "HWIO"); - moco::tf::Padding2DInference infer_padding2d; + moco::Padding2DInference infer_padding2d; infer_padding2d.padding(node->padding()); infer_padding2d.stride(node_stride); infer_padding2d.window(node_window); - auto input_feature_shape = moco::tf::as_feature_shape(input_shape, node->data_layout()); - auto input_plane_shape = moco::tf::make_plane_shape(input_feature_shape); + auto input_feature_shape = moco::as_feature_shape(input_shape, node->data_layout()); + auto input_plane_shape = moco::make_plane_shape(input_feature_shape); *conv2d->pad() = infer_padding2d(input_plane_shape); *conv2d->stride() = node_stride; diff --git a/compiler/moco-tf/src/Canonicalization/DepthwiseConv2dNativeCanonicalizer.cpp b/compiler/moco-tf/src/Canonicalization/DepthwiseConv2dNativeCanonicalizer.cpp index abf77ce..50dddf6 100644 --- a/compiler/moco-tf/src/Canonicalization/DepthwiseConv2dNativeCanonicalizer.cpp +++ b/compiler/moco-tf/src/Canonicalization/DepthwiseConv2dNativeCanonicalizer.cpp @@ -15,9 +15,9 @@ */ #include "DepthwiseConv2dNativeCanonicalizer.h" -#include "TFShapeInferenceHelper.h" #include +#include #include "CodecHelper.h" @@ -84,20 +84,20 @@ bool canonicalize_depthwiseconv2dnative(loco::Graph *graph, moco::TFDepthwiseCon set_feature_dec(feature_dec, data_layout); // Calculate Pad and Stride from inference - auto input_shape = moco::tf::node_shape(node->input()); - auto ker_shape = moco::tf::node_shape(node->filter()); + auto input_shape = moco::node_shape(node->input()); + auto ker_shape = moco::node_shape(node->filter()); auto ker_tensor_shape = ker_shape.as(); - auto node_stride = moco::tf::stride_of(node->strides(), node->data_layout()); - auto node_window = moco::tf::window_of(ker_tensor_shape, "HWCM"); + auto node_stride = moco::stride_of(node->strides(), node->data_layout()); + auto node_window = moco::window_of(ker_tensor_shape, "HWCM"); - moco::tf::Padding2DInference infer_padding2d; + moco::Padding2DInference infer_padding2d; infer_padding2d.padding(node->padding()); infer_padding2d.stride(node_stride); infer_padding2d.window(node_window); - auto input_feature_shape = moco::tf::as_feature_shape(input_shape, node->data_layout()); - auto input_plane_shape = moco::tf::make_plane_shape(input_feature_shape); + auto input_feature_shape = moco::as_feature_shape(input_shape, node->data_layout()); + auto input_plane_shape = moco::make_plane_shape(input_feature_shape); *depthwiseconv2d->pad() = infer_padding2d(input_plane_shape); *depthwiseconv2d->stride() = node_stride; diff --git a/compiler/moco-tf/src/Canonicalization/MaxPoolCanonicalizer.cpp b/compiler/moco-tf/src/Canonicalization/MaxPoolCanonicalizer.cpp index 0d8d8b4..06a6057 100644 --- a/compiler/moco-tf/src/Canonicalization/MaxPoolCanonicalizer.cpp +++ b/compiler/moco-tf/src/Canonicalization/MaxPoolCanonicalizer.cpp @@ -15,9 +15,9 @@ */ #include "MaxPoolCanonicalizer.h" -#include "TFShapeInferenceHelper.h" #include +#include #include "CodecHelper.h" @@ -58,20 +58,20 @@ bool canonicalize_maxpool2d(loco::Graph *graph, moco::TFMaxPool *node) set_feature_dec(feature_dec, data_layout); // paddata to pad - auto input_shape = moco::tf::node_shape(node->input()); + auto input_shape = moco::node_shape(node->input()); assert(input_shape.domain() != loco::Domain::Unknown); - auto node_stride = moco::tf::stride_of(node->strides(), node->data_layout()); - auto node_window = moco::tf::window_of(node->ksize(), node->data_layout()); + auto node_stride = moco::stride_of(node->strides(), node->data_layout()); + auto node_window = moco::window_of(node->ksize(), node->data_layout()); - moco::tf::Padding2DInference infer_padding2d; + moco::Padding2DInference infer_padding2d; infer_padding2d.padding(node->padding()); infer_padding2d.stride(node_stride); infer_padding2d.window(node_window); - auto input_feature_shape = moco::tf::as_feature_shape(input_shape, node->data_layout()); - auto input_plane_shape = moco::tf::make_plane_shape(input_feature_shape); + auto input_feature_shape = moco::as_feature_shape(input_shape, node->data_layout()); + auto input_plane_shape = moco::make_plane_shape(input_feature_shape); *maxPool2d_node->pad() = infer_padding2d(input_plane_shape); *maxPool2d_node->stride() = node_stride; -- 2.7.4