diff --git a/pdseg/models/backbone/resnet.py b/pdseg/models/backbone/resnet.py index b1d7893dc75ec03aeca79973e46129dd654dac36..6eb9f12bc33c97f42664327ada3712c8283943b1 100644 --- a/pdseg/models/backbone/resnet.py +++ b/pdseg/models/backbone/resnet.py @@ -139,14 +139,15 @@ class ResNet(): else: conv_name = "res" + str(block + 2) + "b" + str(i) else: - conv_name = "conv" + str(block + 2) + '_' + str(1 + i) + conv_name = "res" + str(block + 2) + chr(97 + i) dilation_rate = get_dilated_rate(dilation_dict, block) + conv = self.bottleneck_block( input=conv, num_filters=int(num_filters[block] * self.scale), stride=2 if i == 0 and block != 0 and dilation_rate == 1 else 1, - name=conv_name, + name=conv_name, dilation=dilation_rate) layer_count += 3 @@ -216,7 +217,7 @@ class ResNet(): name=None): if self.stem == 'pspnet': - bias_attr=ParamAttr(name=name + "/biases") + bias_attr=ParamAttr(name=name + "_biases") else: bias_attr=False @@ -229,20 +230,21 @@ class ResNet(): dilation=dilation, groups=groups, act=None, - param_attr=ParamAttr(name=name + "/weights"), + param_attr=ParamAttr(name=name + "_weights"), bias_attr=bias_attr, name=name + '.conv2d.output.1') - bn_name = name + '/BatchNorm/' - return fluid.layers.batch_norm( - input=conv, - act=act, - name=bn_name + '.output.1', - param_attr=ParamAttr(name=bn_name + 'gamma'), - bias_attr=ParamAttr(bn_name + 'beta'), - moving_mean_name=bn_name + 'moving_mean', - moving_variance_name=bn_name + 'moving_variance', - ) + if name == "conv1": + bn_name = "bn_" + name + else: + bn_name = "bn" + name[3:] + return fluid.layers.batch_norm(input=conv, + act=act, + name=bn_name + '.output.1', + param_attr=ParamAttr(name=bn_name + '_scale'), + bias_attr=ParamAttr(bn_name + '_offset'), + moving_mean_name=bn_name + '_mean', + moving_variance_name=bn_name + '_variance', ) def shortcut(self, input, ch_out, stride, is_first, name): ch_in = input.shape[1] diff --git a/pdseg/models/modeling/pspnet.py b/pdseg/models/modeling/pspnet.py index ad0c5abe1f2ed78e3824151db9f6396850c80f6f..5792f46d35a1d81fef71f29dbca20dc6bac3da8d 100644 --- a/pdseg/models/modeling/pspnet.py +++ b/pdseg/models/modeling/pspnet.py @@ -1,13 +1,26 @@ -# -*- coding: utf-8 -*- +# coding: utf8 +# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. +# +# 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. + from __future__ import absolute_import from __future__ import division from __future__ import print_function -import math -import paddle + import paddle.fluid as fluid from paddle.fluid.param_attr import ParamAttr from models.libs.model_libs import scope, name_scope -from models.libs.model_libs import avg_pool , conv, bn +from models.libs.model_libs import avg_pool, conv, bn from models.backbone.resnet import ResNet as resnet_backbone from utils.config import cfg