提交 00533d50 编写于 作者: C Channingss

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

上级 a20bc127
...@@ -153,7 +153,7 @@ class YOLOv3: ...@@ -153,7 +153,7 @@ class YOLOv3:
def _upsample(self, input, scale=2, name=None): def _upsample(self, input, scale=2, name=None):
out = fluid.layers.resize_nearest( out = fluid.layers.resize_nearest(
input=input, scale=float(scale), name=name) input=input, scale=float(scale), name=name, align_corners=False)
return out return out
def _detection_block(self, input, channel, name=None): def _detection_block(self, input, channel, name=None):
...@@ -242,7 +242,7 @@ class YOLOv3: ...@@ -242,7 +242,7 @@ class YOLOv3:
nms_top_k=self.nms_topk, nms_top_k=self.nms_topk,
keep_top_k=self.nms_keep_topk, keep_top_k=self.nms_keep_topk,
nms_threshold=self.nms_iou_threshold, nms_threshold=self.nms_iou_threshold,
normalized=False, normalized=True,
nms_eta=1.0, nms_eta=1.0,
background_label=-1) background_label=-1)
return pred return pred
......
...@@ -241,7 +241,7 @@ class HRNet(object): ...@@ -241,7 +241,7 @@ class HRNet(object):
align_mode=1) align_mode=1)
else: else:
y = fluid.layers.resize_nearest( 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( residual = fluid.layers.elementwise_add(
x=residual, y=y, act=None) x=residual, y=y, act=None)
elif j < i: elif j < i:
......
...@@ -151,8 +151,8 @@ class DeepLabv3p(object): ...@@ -151,8 +151,8 @@ class DeepLabv3p(object):
padding=0, padding=0,
param_attr=param_attr)) param_attr=param_attr))
input_shape = fluid.layers.shape(input) input_shape = fluid.layers.shape(input)
image_avg = fluid.layers.resize_bilinear(image_avg, image_avg = fluid.layers.resize_bilinear(
input_shape[2:]) image_avg, input_shape[2:], align_corners=False)
with scope("aspp0"): with scope("aspp0"):
aspp0 = bn_relu( aspp0 = bn_relu(
...@@ -260,7 +260,9 @@ class DeepLabv3p(object): ...@@ -260,7 +260,9 @@ class DeepLabv3p(object):
decode_shortcut_shape = fluid.layers.shape(decode_shortcut) decode_shortcut_shape = fluid.layers.shape(decode_shortcut)
encode_data = fluid.layers.resize_bilinear( 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 = fluid.layers.concat(
[encode_data, decode_shortcut], axis=1) [encode_data, decode_shortcut], axis=1)
if self.decoder_use_sep_conv: if self.decoder_use_sep_conv:
...@@ -362,7 +364,8 @@ class DeepLabv3p(object): ...@@ -362,7 +364,8 @@ class DeepLabv3p(object):
bias_attr=True, bias_attr=True,
param_attr=param_attr) param_attr=param_attr)
image_shape = fluid.layers.shape(image) 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: if self.num_classes == 1:
out = sigmoid_to_softmax(logit) out = sigmoid_to_softmax(logit)
......
...@@ -86,26 +86,27 @@ class FastSCNN(object): ...@@ -86,26 +86,27 @@ class FastSCNN(object):
64, 128, 128) 64, 128, 128)
with scope('classifier'): with scope('classifier'):
logit = self._classifier(x, 128) 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: if len(self.multi_loss_weight) == 3:
with scope('aux_layer_higher'): with scope('aux_layer_higher'):
higher_logit = self._aux_layer(higher_res_features, higher_logit = self._aux_layer(higher_res_features,
self.num_classes) self.num_classes)
higher_logit = fluid.layers.resize_bilinear( 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'): with scope('aux_layer_lower'):
lower_logit = self._aux_layer(lower_res_feature, lower_logit = self._aux_layer(lower_res_feature,
self.num_classes) self.num_classes)
lower_logit = fluid.layers.resize_bilinear( 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) logit = (logit, higher_logit, lower_logit)
elif len(self.multi_loss_weight) == 2: elif len(self.multi_loss_weight) == 2:
with scope('aux_layer_higher'): with scope('aux_layer_higher'):
higher_logit = self._aux_layer(higher_res_features, higher_logit = self._aux_layer(higher_res_features,
self.num_classes) self.num_classes)
higher_logit = fluid.layers.resize_bilinear( 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) logit = (logit, higher_logit)
else: else:
logit = (logit, ) logit = (logit, )
...@@ -317,7 +318,8 @@ class FastSCNN(object): ...@@ -317,7 +318,8 @@ class FastSCNN(object):
data_bn, data_bn,
out_shape=fluid.layers.shape(input)[2:], out_shape=fluid.layers.shape(input)[2:],
name=psp_name + '_interp', name=psp_name + '_interp',
align_mode=0) align_corners=False,
align_mode=1)
cat_layers.append(interp) cat_layers.append(interp)
cat_layers = [input] + cat_layers cat_layers = [input] + cat_layers
out = fluid.layers.concat(cat_layers, axis=1, name='psp_cat') out = fluid.layers.concat(cat_layers, axis=1, name='psp_cat')
...@@ -342,7 +344,7 @@ class FastSCNN(object): ...@@ -342,7 +344,7 @@ class FastSCNN(object):
w = shape[-1] w = shape[-1]
h = shape[-2] h = shape[-2]
lower_res_feature = fluid.layers.resize_bilinear( 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'): with scope('dwconv'):
lower_res_feature = relu( lower_res_feature = relu(
......
...@@ -144,7 +144,8 @@ class UNet(object): ...@@ -144,7 +144,8 @@ class UNet(object):
with scope("up"): with scope("up"):
if self.upsample_mode == 'bilinear': if self.upsample_mode == 'bilinear':
short_cut_shape = fluid.layers.shape(short_cut) 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: else:
data = deconv( data = deconv(
data, data,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册