VGG 16/19慢运行时间

时间:2017-03-22 02:14:45

标签: python caffe pycaffe vgg-net

当我尝试使用Caffe with Python(2.7和3.5)从预先训练的VGG 16/19模型中获取输出时,它在net.forward()步骤中占用超过15秒(在我的笔记本电脑的CPU)。

我想知道是否有人可能会告诉我为什么会这样,就像许多其他型号(即ResNet,AlexNet)一样,我在一瞬间得到输出,这是我发现的唯一模型远远不能表现得这么差。

我使用的代码如下:

img = cv2.imread(path + img_name + '.jpg')
img = transform_img(img,224,224) #Resizes image.
net = caffe.Net(model_prototxt,model_trained,caffe.TEST)
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformer.set_transpose('data', (2,0,1))
net.blobs['data'].data[...] = transformer.preprocess('data', img)
start = timer()
out = net.forward()
end = timer()
print('Runtime: ' + "{0:.2f}".format(end-start) + 's')

对于可能是一个非常新秀的问题感到抱歉,并提前感谢任何花时间回答的人。

1 个答案:

答案 0 :(得分:3)

VGG-19比其前辈慢得多。请记住,无论培训时间如何,ILSVRC竞赛的指标都是准确性(前1 /前5)。在一周内训练并获得95.2%准确度的模型胜过一个在2小时内训练并获得95.1%准确度的模型。

计算能力继续接近摩尔定律,因此我们可以自由地开发算法,这些算法在几倍的时间内不会实时实用。一周内的火车现在五年内不到一天。

一般而言,较早的模型将比较晚的模型训练得更快,但精度更低。这适用于AlexNet,GoogleNet v1,GoogleNet v2,ResNet和VGG。 VGG有一个巨大的下降:拓扑创新使其更准确严重降低了培训率。