Kaynağa Gözat

yolo_v3,hrnet,deeplabv3p,unet,fast_scnn change resize method for export ONNX opset10

Channingss 5 yıl önce
ebeveyn
işleme
00533d50e1

+ 2 - 2
paddlex/cv/nets/detection/yolo_v3.py

@@ -153,7 +153,7 @@ class YOLOv3:
 
     def _upsample(self, input, scale=2, name=None):
         out = fluid.layers.resize_nearest(
-            input=input, scale=float(scale), name=name)
+            input=input, scale=float(scale), name=name, align_corners=False)
         return out
 
     def _detection_block(self, input, channel, name=None):
@@ -242,7 +242,7 @@ class YOLOv3:
             nms_top_k=self.nms_topk,
             keep_top_k=self.nms_keep_topk,
             nms_threshold=self.nms_iou_threshold,
-            normalized=False,
+            normalized=True,
             nms_eta=1.0,
             background_label=-1)
         return pred

+ 1 - 1
paddlex/cv/nets/hrnet.py

@@ -241,7 +241,7 @@ class HRNet(object):
                             align_mode=1)
                     else:
                         y = fluid.layers.resize_nearest(
-                            input=y, scale=2**(j - i))
+                            input=y, scale=2**(j - i), align_corners=False)
                     residual = fluid.layers.elementwise_add(
                         x=residual, y=y, act=None)
                 elif j < i:

+ 7 - 4
paddlex/cv/nets/segmentation/deeplabv3p.py

@@ -151,8 +151,8 @@ class DeepLabv3p(object):
                         padding=0,
                         param_attr=param_attr))
                 input_shape = fluid.layers.shape(input)
-                image_avg = fluid.layers.resize_bilinear(image_avg,
-                                                         input_shape[2:])
+                image_avg = fluid.layers.resize_bilinear(
+                    image_avg, input_shape[2:], align_corners=False)
 
             with scope("aspp0"):
                 aspp0 = bn_relu(
@@ -260,7 +260,9 @@ class DeepLabv3p(object):
 
                 decode_shortcut_shape = fluid.layers.shape(decode_shortcut)
                 encode_data = fluid.layers.resize_bilinear(
-                    encode_data, decode_shortcut_shape[2:])
+                    encode_data,
+                    decode_shortcut_shape[2:],
+                    align_corners=False)
                 encode_data = fluid.layers.concat(
                     [encode_data, decode_shortcut], axis=1)
             if self.decoder_use_sep_conv:
@@ -362,7 +364,8 @@ class DeepLabv3p(object):
                     bias_attr=True,
                     param_attr=param_attr)
             image_shape = fluid.layers.shape(image)
-            logit = fluid.layers.resize_bilinear(logit, image_shape[2:])
+            logit = fluid.layers.resize_bilinear(
+                logit, image_shape[2:], align_corners=False)
 
         if self.num_classes == 1:
             out = sigmoid_to_softmax(logit)

+ 8 - 6
paddlex/cv/nets/segmentation/fast_scnn.py

@@ -86,26 +86,27 @@ class FastSCNN(object):
                                      64, 128, 128)
         with scope('classifier'):
             logit = self._classifier(x, 128)
-            logit = fluid.layers.resize_bilinear(logit, size, align_mode=0)
+            logit = fluid.layers.resize_bilinear(
+                logit, size, align_corners=False, align_mode=1)
 
         if len(self.multi_loss_weight) == 3:
             with scope('aux_layer_higher'):
                 higher_logit = self._aux_layer(higher_res_features,
                                                self.num_classes)
                 higher_logit = fluid.layers.resize_bilinear(
-                    higher_logit, size, align_mode=0)
+                    higher_logit, size, align_corners=False, align_mode=1)
             with scope('aux_layer_lower'):
                 lower_logit = self._aux_layer(lower_res_feature,
                                               self.num_classes)
                 lower_logit = fluid.layers.resize_bilinear(
-                    lower_logit, size, align_mode=0)
+                    lower_logit, size, align_corners=False, align_mode=1)
             logit = (logit, higher_logit, lower_logit)
         elif len(self.multi_loss_weight) == 2:
             with scope('aux_layer_higher'):
                 higher_logit = self._aux_layer(higher_res_features,
                                                self.num_classes)
                 higher_logit = fluid.layers.resize_bilinear(
-                    higher_logit, size, align_mode=0)
+                    higher_logit, size, align_corners=False, align_mode=1)
             logit = (logit, higher_logit)
         else:
             logit = (logit, )
@@ -317,7 +318,8 @@ class FastSCNN(object):
                     data_bn,
                     out_shape=fluid.layers.shape(input)[2:],
                     name=psp_name + '_interp',
-                    align_mode=0)
+                    align_corners=False,
+                    align_mode=1)
             cat_layers.append(interp)
         cat_layers = [input] + cat_layers
         out = fluid.layers.concat(cat_layers, axis=1, name='psp_cat')
@@ -342,7 +344,7 @@ class FastSCNN(object):
         w = shape[-1]
         h = shape[-2]
         lower_res_feature = fluid.layers.resize_bilinear(
-            lower_res_feature, [h, w], align_mode=0)
+            lower_res_feature, [h, w], align_corners=False, align_mode=1)
 
         with scope('dwconv'):
             lower_res_feature = relu(

+ 2 - 1
paddlex/cv/nets/segmentation/unet.py

@@ -144,7 +144,8 @@ class UNet(object):
         with scope("up"):
             if self.upsample_mode == 'bilinear':
                 short_cut_shape = fluid.layers.shape(short_cut)
-                data = fluid.layers.resize_bilinear(data, short_cut_shape[2:])
+                data = fluid.layers.resize_bilinear(
+                    data, short_cut_shape[2:], align_corners=False)
             else:
                 data = deconv(
                     data,