VGG 16/19缓慢的运行时间

Dan*_*ane 0 python caffe pycaffe vgg-net

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

我想知道是否有人会建议我这样做,就像其他许多模型(例如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')
Run Code Online (Sandbox Code Playgroud)

抱歉,这可能是一个非常新手的问题,在此先感谢所有花时间回答的人。

Pru*_*une 5

VGG-19是比它的前辈更慢。请记住,ILSVRC比赛的度量标准是准确性(前1名/前5名),与培训时间无关。在一周内训练并获得95.2%准确度的模型比在2小时内训练并获得95.1%准确度的模型要好。

计算能力继续近似于摩尔定律,因此我们可以自由地开发在几倍的时间内无法实时实现的算法。现在,一周内训练的时间将在五年内少于一天。

通常,较早的模型比较早的模型训练速度更快,但准确性较低。这适用于AlexNet,GoogleNet v1,GoogleNet v2,ResNet和VGG。VGG 有一个巨大的落脚点:使其更精确的拓扑创新严重降低了培训速度。