def construc_net():
net = caffe.NetSpec()
net.data = L.Input(input_param = dict(shape = dict(dim = [1,3,224,224])))
block1 = _block_first(net, net.data)
net.pool1 = L.Pooling(block1, pool = P.Pooling.MAX, kernel_size = 3, stride = 2)
branch_2a = _branch('2a', net, net.pool1, 64, has_branch1 = True, is_branch_2a = True)
branch_2b = _branch('2b', net, branch_2a, 64)
branch_2c = _branch('2c', net, branch_2b, 64)
branch_3a = _branch('3a', net, branch_2c, 128, has_branch1 = True)
branch_3b = _branch('3b', net, branch_3a, 128)
branch_3c = _branch('3c', net, branch_3b, 128)
branch_3d = _branch('3d', net, branch_3c, 128)
branch_4a = _branch('4a', net, branch_3d, 256, has_branch1 = True)
branch_pre = branch_4a
for idx in xrange(1,23,1): # conv4_x total 1+22=23
flag = '4b{}'.format(idx)
branch_pre = _branch(flag, net, branch_pre, 256)
branch_5a = _branch('5a', net, branch_pre, 512, has_branch1 = True)
branch_5b = _branch('5b', net, branch_5a, 512)
branch_5c = _branch('5c', net, branch_5b, 512)
net.pool5 = L.Pooling(branch_5c, pool = P.Pooling.AVE, kernel_size = 7, stride = 1)
net.fc6 = L.InnerProduct(net.pool5, num_output = 1000)
net.prob = L.Softmax(net.fc6)
return net.to_proto()
评论列表
文章目录