• 软工划水日报-paddle模型训练(2) 4/19


    首先,祝我自己生日快乐

    其次,今天想要编写的是卷积神经网络函数,其实就是改写一下之前那个数字训练的神经网络

    代码如下:

    import paddle.fluid as fluid
    
    
    def conv_bn_layer(input, filter_size, num_filters, stride,
                      padding, channels=None, num_groups=1, act='relu', use_cudnn=True):
        conv = fluid.layers.conv2d(input=input,
                                   num_filters=num_filters,
                                   filter_size=filter_size,
                                   stride=stride,
                                   padding=padding,
                                   groups=num_groups,
                                   act=None,
                                   use_cudnn=use_cudnn,
                                   bias_attr=False)
    
        return fluid.layers.batch_norm(input=conv, act=act)
    
    
    def depthwise_separable(input, num_filters1, num_filters2, num_groups, stride, scale):
        depthwise_conv = conv_bn_layer(input=input,
                                       filter_size=3,
                                       num_filters=int(num_filters1 * scale),
                                       stride=stride,
                                       padding=1,
                                       num_groups=int(num_groups * scale),
                                       use_cudnn=False)
    
        pointwise_conv = conv_bn_layer(input=depthwise_conv,
                                       filter_size=1,
                                       num_filters=int(num_filters2 * scale),
                                       stride=1,
                                       padding=0)
        return pointwise_conv
    
    
    def net(input, class_dim, scale=1.0):
        # conv1: 112x112
        input = conv_bn_layer(input=input,
                              filter_size=3,
                              channels=3,
                              num_filters=int(32 * scale),
                              stride=2,
                              padding=1)
    
        # 56x56
        input = depthwise_separable(input=input,
                                    num_filters1=32,
                                    num_filters2=64,
                                    num_groups=32,
                                    stride=1,
                                    scale=scale)
    
        input = depthwise_separable(input=input,
                                    num_filters1=64,
                                    num_filters2=128,
                                    num_groups=64,
                                    stride=2,
                                    scale=scale)
    
        # 28x28
        input = depthwise_separable(input=input,
                                    num_filters1=128,
                                    num_filters2=128,
                                    num_groups=128,
                                    stride=1,
                                    scale=scale)
    
        input = depthwise_separable(input=input,
                                    num_filters1=128,
                                    num_filters2=256,
                                    num_groups=128,
                                    stride=2,
                                    scale=scale)
    
        # 14x14
        input = depthwise_separable(input=input,
                                    num_filters1=256,
                                    num_filters2=256,
                                    num_groups=256,
                                    stride=1,
                                    scale=scale)
    
        input = depthwise_separable(input=input,
                                    num_filters1=256,
                                    num_filters2=512,
                                    num_groups=256,
                                    stride=2,
                                    scale=scale)
    
        # 14x14
        for i in range(5):
            input = depthwise_separable(input=input,
                                        num_filters1=512,
                                        num_filters2=512,
                                        num_groups=512,
                                        stride=1,
                                        scale=scale)
        # 7x7
        input = depthwise_separable(input=input,
                                    num_filters1=512,
                                    num_filters2=1024,
                                    num_groups=512,
                                    stride=2,
                                    scale=scale)
    
        input = depthwise_separable(input=input,
                                    num_filters1=1024,
                                    num_filters2=1024,
                                    num_groups=1024,
                                    stride=1,
                                    scale=scale)
    
        feature = fluid.layers.pool2d(input=input,
                                      pool_size=0,
                                      pool_stride=1,
                                      pool_type='avg',
                                      global_pooling=True)
    
        net = fluid.layers.fc(input=feature,
                              size=class_dim,
                              act='softmax')
        return net

    好,就是这样

  • 相关阅读:
    ActionBar 值 addTab 的小提示
    Android Studio Gradle project refresh failed No such property classpath for class
    Android Studio 初始新建项目时 build gradle project 超级慢的原因
    ActionBar之style出现Cannot resolve symbol 'Theme' 错误
    Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
    Linux使用rsync客户端与服务端同步目录进行备份
    Linux服务器导入导出SVN项目
    CentOS6.3配置SVN之subversion1.7.7
    Linux增加swap分区大小
    CentOS6.2编译gcc失败,kernel-headers错误
  • 原文地址:https://www.cnblogs.com/Sakuraba/p/14909968.html
Copyright © 2020-2023  润新知