2017-03-22 7 views
0

Cafe with Python(2.7と3.5)を使用して、訓練を受けたVGG 16/19モデルから出力を取得しようとすると、net.forward()ステップで15秒以上かかる私のラップトップのCPU上に)。VGG 16/19スローランタイム

他の多くのモデル(つまり、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') 

極めてルーキー質問、と答えるために時間を要する誰にも事前のおかげかもしれないもののために申し訳ありませんが。

+0

どのCaffeディストリビューションをお使いですか?あなたのラップトップにはどんなハードウェアがありますか(CPU仕様は今のところ十分です)?バッチサイズは何ですか(1は投稿されたコードにすべてが表示されます)。 – Prune

+0

また、他のトポロジではどのような速度が見られますか(イメージあたりの転送時間は問題ありません)? – Prune

答えて

2

VGG-19は、多くは、前のバージョンよりも遅いです()。 ILSVRCの競技会のメトリックは、トレーニング時間に関係なく、正確さ(トップ1 /トップ5)であることを覚えておいてください。 1週間で鍛えられ、95.2%の精度を誇るモデルは、2時間でトレーニングして95.1%の精度を得るモデルよりも優れています。

コンピューティングパワーはムーアの法則に近似しているため、倍増するとリアルタイムでは実用的ではないアルゴリズムを自由に開発することができます。今週の列車は5年で1日足らずです。

一般に、以前のモデルは、後のモデルよりも速く、精度は低くなります。これは、AlexNet、GoogleNet v1、GoogleNet v2、ResNet、およびVGGに適用されます。 巨大な VGGとのドロップオフ:それをより正確にする位相的な技術革新ひどく訓練の速度を遅くする。

+0

あなたのコメントと答えをありがとう。今モデルをトレーニングするつもりはないので、自由に利用できるトレーニング済みのモデルを使って、それがどのように動作するかを確認したいと思っています。それは、それぞれのフォワードパス/テストが15-20秒かかっていることに気付いたときです。このような時間が驚くべきことではないと思うなら、私はそれに満足しています。 :) あなたの2番目の段落は多くの意味があり、私が以前は詳しく考えていなかったものです! –

+1

あなたは大歓迎です。あなたのパフォーマンスは私が得るよりもはるかに悪いです。だからあなたのハードウェアについて尋ねていたのです。 VGGとより速いトポロジーの間に見られる速度比は何ですか? – Prune

+0

ResNetとAlexNetのようなものは、それぞれのフォワードパスで1秒以内に実行されます(残念なことに、特定のタイミングは得られていません)。私は現在、私のラップトップのCPUだけで動作しているので、これが原因かもしれません。 –

関連する問題