[enco] Build IR from Average Pooling layers with padding (#1373)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Thu, 6 Sep 2018 04:38:36 +0000 (13:38 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Thu, 6 Sep 2018 04:38:36 +0000 (13:38 +0900)
This commit extends enco caffe frontend to support coco IR build on
average pooling layers with padding.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/enco/frontend/caffe/src/Frontend.cpp

index 50182f2..6ecfbce 100644 (file)
@@ -317,12 +317,20 @@ enco::Bundle Frontend::load(void) const
       builders[PoolingMethod::Avg] = [](coco::Module *m, const PoolingSpec &spec) {
         auto op = m->entity()->op()->create<coco::AvgPool2D>();
 
+        // NOTE Caffe use static divisor on average pooling
+        op->divisor(coco::AvgPool2D::Divisor::Static);
+
         op->window()->vertical(spec.window_height());
         op->window()->horizontal(spec.window_height());
 
         op->stride()->vertical(spec.vertical_stride());
         op->stride()->horizontal(spec.horizontal_stride());
 
+        op->pad()->top(spec.vertical_pad());
+        op->pad()->bottom(spec.vertical_pad());
+        op->pad()->left(spec.horizontal_pad());
+        op->pad()->right(spec.horizontal_pad());
+
         return op;
       };