网络结构 googlenet

来源:互联网 发布:苹果手机快速打开数据 编辑:程序博客网 时间:2024/06/06 02:22

  网络结构 googlenet.py

  在PaddlePaddle的models下面,有关于GoogLeNet的实现代码,大家可以直接学习拿来跑一下:

  1 import paddle.v2 as paddle

  2

  3 __all__ = ['googlenet']

  4

  5

  6 def inception(name, input, channels, filter1, filter3R, filter3, filter5R,

  7 filter5, proj):成都人流术后注意事项
成都人流大概要多少钱
人流后出血是什么原因造成的
金堂好的人流医院
成都无痛人流的治疗有什么优势
成都治疗阴道炎专业的医院

  8 cov1 = paddle.layer.img_conv(

  9 name=name + '_1',

  10 input=input,

  11 filter_size=1,

  12 num_channels=channels,

  13 num_filters=filter1,

  14 stride=1,

  15 padding=0)

  16

  17 cov3r = paddle.layer.img_conv(

  18 name=name + '_3r',

  19 input=input,成都治疗阴道炎专业的医院
导致白带异常的原因是哪些
成都女性白带异常怎么办
四川专业妇科医院
人流手术在彭州哪里做比较好
青羊区做无痛人流哪家医院好?

  20 filter_size=1,

  21 num_channels=channels,

  22 num_filters=filter3R,

  23 stride=1,

  24 padding=0)

  25 cov3 = paddle.layer.img_conv(

  26 name=name + '_3',

  27 input=cov3r,高新区包皮过长的治疗费多吗
成华区哪个医院看早泄看的好
武侯区看妇科去九龙好不好
武侯妇科好不好?
温江妇科医院收费标准
温江区哪家医院治疗月经不调好
青羊区做阴唇整形专业的医院?
青羊区做人流专业的医院

  28 filter_size=3,

  29 num_filters=filter3,

  30 stride=1,

  31 padding=1)

  32

  33 cov5r = paddle.layer.img_conv(

  34 name=name + '_5r',

  35 input=input,

  36 filter_size=1,

  37 num_channels=channels,

  38 num_filters=filter5R,

  39 stride=1,

  40 padding=0)

  41 cov5 = paddle.layer.img_conv(

  42 name=name + '_5',温江区哪家医院治疗月经不调好
青羊区做阴唇整形专业的医院?
青羊区做人流专业的医院
锦江区男科医院专业么
锦江区医院治疗阳痿早泄贵吗
双流妇科医院好吗
成都打胎医院哪家好

  43 input=cov5r,

  44 filter_size=5,

  45 num_filters=filter5,

  46 stride=1,

  47 padding=2)

  48

  49 pool1 = paddle.layer.img_pool(

  50 name=name + '_max',

  51 input=input,

  52 pool_size=3,

  53 num_channels=channels,

  54 stride=1,

  55 padding=1)

  56 covprj = paddle.layer.img_conv(

  57 name=name + '_proj',

  58 input=pool1,

  59 filter_size=1,

  60 num_filters=proj,

  61 stride=1,

  62 padding=0)

  63

  64 cat = paddle.layer.concat(name=name, input=[cov1, cov3, cov5, covprj])

  65 return cat

  66

  67

  68 def googlenet(input, class_dim):

  69 # stage 1

  70 conv1 = paddle.layer.img_conv(

  71 name="conv1",

  72 input=input,

  73 filter_size=7,

  74 num_channels=3,

  75 num_filters=64,

  76 stride=2,

  77 padding=3)

  78 pool1 = paddle.layer.img_pool(

  79 name="pool1", input=conv1, pool_size=3, num_channels=64, stride=2)

  80

  81 # stage 2

  82 conv2_1 = paddle.layer.img_conv(

  83 name="conv2_1",

  84 input=pool1,

  85 filter_size=1,

  86 num_filters=64,

  87 stride=1,

  88 padding=0)

  89 conv2_2 = paddle.layer.img_conv(

  90 name="conv2_2",

  91 input=conv2_1,

  92 filter_size=3,

  93 num_filters=192,

  94 stride=1,

  95 padding=1)

  96 pool2 = paddle.layer.img_pool(

  97 name="pool2", input=conv2_2, pool_size=3, num_channels=192, stride=2)

  98

  99 # stage 3

  100 ince3a = inception("ince3a", pool2, 192, 64, 96, 128, 16, 32, 32)

  101 ince3b = inception("ince3b", ince3a, 256, 128, 128, 192, 32, 96, 64)

  102 pool3 = paddle.layer.img_pool(

  103 name="pool3", input=ince3b, num_channels=480, pool_size=3, stride=2)

  104

  105 # stage 4

  106 ince4a = inception("ince4a", pool3, 480, 192, 96, 208, 16, 48, 64)

  107 ince4b = inception("ince4b", ince4a, 512, 160, 112, 224, 24, 64, 64)

  108 ince4c = inception("ince4c", ince4b, 512, 128, 128, 256, 24, 64, 64)

  109 ince4d = inception("ince4d", ince4c, 512, 112, 144, 288, 32, 64, 64)

  110 ince4e = inception("ince4e", ince4d, 528, 256, 160, 320, 32, 128, 128)

  111 pool4 = paddle.layer.img_pool(

  112 name="pool4", input=ince4e, num_channels=832, pool_size=3, stride=2)

  113

  114 # stage 5

  115 ince5a = inception("ince5a", pool4, 832, 256, 160, 320, 32, 128, 128)

  116 ince5b = inception("ince5b", ince5a, 832, 384, 192, 384, 48, 128, 128)

  117 pool5 = paddle.layer.img_pool(

  118 name="pool5",

  119 input=ince5b,

  120 num_channels=1024,

  121 pool_size=7,

  122 stride=7,

  123 pool_type=paddle.pooling.Avg())

  124 dropout = paddle.layer.addto(

  125 input=pool5,

  126 layer_attr=paddle.attr.Extra(drop_rate=0.4),

  127 act=paddle.activation.Linear())

  128

  129 out = paddle.layer.fc(

  130 input=dropout, size=class_dim, act=paddle.activation.Softmax())

  131

  132 # fc for output 1

  133 pool_o1 = paddle.layer.img_pool(

  134 name="pool_o1",

  135 input=ince4a,

  136 num_channels=512,

  137 pool_size=5,

  138 stride=3,

  139 pool_type=paddle.pooling.Avg())

  140 conv_o1 = paddle.layer.img_conv(

  141 name="conv_o1",

  142 input=pool_o1,

  143 filter_size=1,

  144 num_filters=128,

  145 stride=1,

  146 padding=0)

  147 fc_o1 = paddle.layer.fc(

  148 name="fc_o1",

  149 input=conv_o1,

  150 size=1024,

  151 layer_attr=paddle.attr.Extra(drop_rate=0.7),

  152 act=paddle.activation.Relu())

  153 out1 = paddle.layer.fc(

  154 input=fc_o1, size=class_dim, act=paddle.activation.Softmax())

  155

  156 # fc for output 2

  157 pool_o2 = paddle.layer.img_pool(

  158 name="pool_o2",

  159 input=ince4d,

  160 num_channels=528,

  161 pool_size=5,

  162 stride=3,

  163 pool_type=paddle.pooling.Avg())

  164 conv_o2 = paddle.layer.img_conv(

  165 name="conv_o2",

  166 input=pool_o2,

  167 filter_size=1,

  168 num_filters=128,

  169 stride=1,

  170 padding=0)

  171 fc_o2 = paddle.layer.fc(

  172 name="fc_o2",

  173 input=conv_o2,

  174 size=1024,

  175 layer_attr=paddle.attr.Extra(drop_rate=0.7),

  176 act=paddle.activation.Relu())

  177 out2 = paddle.layer.fc(

  178 input=fc_o2, size=class_dim, act=paddle.activation.Softmax())

  179

  180 return out, out1, out2

原创粉丝点击