def create_model(depth):
model = caffe_pb2.NetParameter()
model.name = 'ResNet_{}'.format(depth)
configs = {
50: [3, 4, 6, 3],
101: [3, 4, 23, 3],
152: [3, 8, 36, 3],
200: [3, 24, 36, 3],
}
num = configs[depth]
layers = []
layers.append(Data('data', ['data', 'label'],
'examples/imagenet/ilsvrc12_train_lmdb', 32, 'train'))
layers.append(Data('data', ['data', 'label'],
'examples/imagenet/ilsvrc12_val_lmdb', 25, 'test'))
layers.append(Conv('conv1', 'data', 64, 7, 2, 3))
layers.extend(Act('conv1', layers[-1].top[0]))
layers.append(Pool('pool1', layers[-1].top[0], 'max', 3, 2, 0))
layers.extend(ResLayer('conv2', layers[-1].top[0], num[0], 64, 1, 'first'))
layers.extend(ResLayer('conv3', layers[-1].top[0], num[1], 128, 2))
layers.extend(ResLayer('conv4', layers[-1].top[0], num[2], 256, 2))
layers.extend(ResLayer('conv5', layers[-1].top[0], num[3], 512, 2))
layers.extend(Act('conv5', layers[-1].top[0]))
layers.append(Pool('pool5', layers[-1].top[0], 'ave', 7, 1, 0))
layers.append(Linear('fc', layers[-1].top[0], 1000))
layers.append(Loss('loss', ['fc', 'label']))
layers.append(Accuracy('accuracy_top1', ['fc', 'label'], 1))
layers.append(Accuracy('accuracy_top5', ['fc', 'label'], 5))
model.layer.extend(layers)
return model
评论列表
文章目录