提交 daadf036 编写于 作者: W WuHaobo

fix efficientnet.py to support for paddle1.8

上级 16bf7fc7
#copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. # copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
# #
#Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
#You may obtain a copy of the License at # You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
#Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS, # distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
#limitations under the License. # limitations under the License.
from __future__ import absolute_import from __future__ import absolute_import
from __future__ import division from __future__ import division
...@@ -201,7 +201,8 @@ class EfficientNet(): ...@@ -201,7 +201,8 @@ class EfficientNet():
def _expand_conv_norm(self, inputs, block_args, is_test, name=None): def _expand_conv_norm(self, inputs, block_args, is_test, name=None):
# Expansion phase # Expansion phase
oup = block_args.input_filters * block_args.expand_ratio # number of output channels oup = block_args.input_filters * \
block_args.expand_ratio # number of output channels
if block_args.expand_ratio != 1: if block_args.expand_ratio != 1:
conv = self.conv_bn_layer( conv = self.conv_bn_layer(
...@@ -223,7 +224,8 @@ class EfficientNet(): ...@@ -223,7 +224,8 @@ class EfficientNet():
s = block_args.stride s = block_args.stride
if isinstance(s, list) or isinstance(s, tuple): if isinstance(s, list) or isinstance(s, tuple):
s = s[0] s = s[0]
oup = block_args.input_filters * block_args.expand_ratio # number of output channels oup = block_args.input_filters * \
block_args.expand_ratio # number of output channels
conv = self.conv_bn_layer( conv = self.conv_bn_layer(
inputs, inputs,
...@@ -326,7 +328,8 @@ class EfficientNet(): ...@@ -326,7 +328,8 @@ class EfficientNet():
drop_connect_rate=None, drop_connect_rate=None,
name=None): name=None):
# Expansion and Depthwise Convolution # Expansion and Depthwise Convolution
oup = block_args.input_filters * block_args.expand_ratio # number of output channels oup = block_args.input_filters * \
block_args.expand_ratio # number of output channels
has_se = self.use_se and (block_args.se_ratio is not None) and ( has_se = self.use_se and (block_args.se_ratio is not None) and (
0 < block_args.se_ratio <= 1) 0 < block_args.se_ratio <= 1)
id_skip = block_args.id_skip # skip connection and drop connect id_skip = block_args.id_skip # skip connection and drop connect
......
#copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. # copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
# #
#Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
#You may obtain a copy of the License at # You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
#Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS, # distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
#limitations under the License. # limitations under the License.
import paddle.fluid as fluid import paddle.fluid as fluid
...@@ -34,8 +34,7 @@ class Loss(object): ...@@ -34,8 +34,7 @@ class Loss(object):
def _labelsmoothing(self, target): def _labelsmoothing(self, target):
if target.shape[-1] != self._class_dim: if target.shape[-1] != self._class_dim:
one_hot_target = fluid.one_hot( one_hot_target = fluid.one_hot(input=target, depth=self._class_dim)
input=target, depth=self._class_dim)
else: else:
one_hot_target = target one_hot_target = target
soft_target = fluid.layers.label_smooth( soft_target = fluid.layers.label_smooth(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册