from __future__ import print_function
import paddle
import paddle.fluid as fluid
import sys
import numpy
def vgg_16(input):
def conv_block(ipt, num_filter, groups, dropouts):
return fluid.nets.img_conv_group(
input = ipt,
pool_size =2,
pool_stride = 2,
conv_num_filter = [num_filter]*groups,
conv_act = 'relu',
conv_with_batchnorm = True,
conv_batchnorm_drop_rate = dropouts,
pool_type='max'
)
conv1 = conv_block(input, 64, 2, [0.3, 0])
conv2 = conv_block(conv1, 128, 2, [0.3, 0])
conv3 = conv_block(conv2, 256, 3, [0.3, 0])
conv4 = conv_block(conv3, 512, 3, [0.3, 0])
conv5 = conv_block(conv4, 512, 3,[0.3, 0])
drop = fluid.layers.dropout(x = conv5, dropout_prob = 0.5)
fc1 = fluid.layers.fc(input = drop, size = 512, act=None)
bn = fluid.layers.batch_norm(input=fc1, act='relu')
drop2 = fluid.layers.dropout(x = bn, dropout_prob= 0.5)
fc2 = fluid.layers.fc(input = drop2, size = 512, act=None)
predict = fluid.layers.fc(input=fc2, size=10, act='softmax')
return predict
pp框架构建VGG16网络结构
猜你喜欢
转载自blog.csdn.net/weixin_44146373/article/details/105616476
今日推荐
周排行