コード例 #1
0
 def __stage(self, x, stage=2, repeat=3):
     if 2 <= stage <= 4:
         stage_layer = shufflenet_unit(
             'stage' + str(stage) + '_0',
             x=x,
             w=None,
             num_groups=self.args.num_groups,
             group_conv_bottleneck=not (stage == 2),
             num_filters=self.output_channels[str(
                 self.args.num_groups)][stage - 2],
             stride=(2, 2),
             fusion='concat',
             l2_strength=self.args.l2_strength,
             bias=self.args.bias,
             batchnorm_enabled=self.args.batchnorm_enabled,
             is_training=self.is_training)
         for i in range(1, repeat + 1):
             stage_layer = shufflenet_unit(
                 'stage' + str(stage) + '_' + str(i),
                 x=stage_layer,
                 w=None,
                 num_groups=self.args.num_groups,
                 group_conv_bottleneck=True,
                 num_filters=self.output_channels[str(
                     self.args.num_groups)][stage - 2],
                 stride=(1, 1),
                 fusion='add',
                 l2_strength=self.args.l2_strength,
                 bias=self.args.bias,
                 batchnorm_enabled=self.args.batchnorm_enabled,
                 is_training=self.is_training)
         return stage_layer
     else:
         raise ValueError("Stage should be from 2 -> 4")
コード例 #2
0
ファイル: ShuffleNet_tf.py プロジェクト: dyz-zju/MVision
 def __stage(self, x, stage=2, repeat=3):
     if 2 <= stage <= 4:
         stage_layer = shufflenet_unit('stage' + str(stage) + '_0', x=x, w=None,
                                       num_groups=self.args.num_groups,
                                       group_conv_bottleneck=not (stage == 2),# stage = 2 时 先不进行分组点卷积
                                       num_filters=
                                       self.output_channels[str(self.args.num_groups)][
                                           stage - 2],
                                       stride=(2, 2),# concate通道扩展合并
                                       fusion='concat', l2_strength=self.args.l2_strength,
                                       bias=self.args.bias,
                                       batchnorm_enabled=self.args.batchnorm_enabled,
                                       is_training=self.is_training)
         for i in range(1, repeat + 1):
             stage_layer = shufflenet_unit('stage' + str(stage) + '_' + str(i),
                                           x=stage_layer, w=None,
                                           num_groups=self.args.num_groups,
                                           group_conv_bottleneck=True,# 分组点卷积
                                           num_filters=self.output_channels[
                                               str(self.args.num_groups)][stage - 2],
                                           stride=(1, 1),#ADD 通道叠加
                                           fusion='add',
                                           l2_strength=self.args.l2_strength,
                                           bias=self.args.bias,
                                           batchnorm_enabled=self.args.batchnorm_enabled,
                                           is_training=self.is_training)
         return stage_layer
     else:
         raise ValueError("Stage should be from 2 -> 4")