2016-10-21 3 views
3

CNNのウェイトを訓練した後、同じネットアーキテクチャを使用して予測を行うことにしました。 私のデータはbatch_size = 64です。Pycaffe net forward_all()関数が動作しない

私はpred_net.forward()関数を正しく実行でき、予測クラスはblobs['prob']から取得できます。

私のデータセットには20000個のサンプルがあります。 forward()の機能がi回あると、64*iのサンプルがネットに転送されます。だから私はいくつかのサンプルを2回転送せずに20000サンプルをカバーすることはできません。

したがって、私はforward_all()機能を試しました。しかし、私は有用な情報なしで例外があります。私は何が間違っているのか分からない。

forward()forward_all()は似ていますが(そうではありません)。ここで

は私のコードとエラーメッセージの一部です。うまくいけば、

pred_net = caffe.Net(pred_net_proto_file, 'kg_trained.caffemodel', caffe.TEST) 

pred_net.forward_all() 

--------------------------------------------------------------------------- 
StopIteration        Traceback (most recent call last) 
<ipython-input-6-cefd35621a35> in <module>() 
----> 1 pred_net.forward_all() 

/home/microos/Space/caffe-master/python/caffe/pycaffe.pyc in _Net_forward_all(self, blobs, **kwargs) 
    197   all_outs[out] = np.asarray(all_outs[out]) 
    198  # Discard padding. 
--> 199  pad = len(six.next(six.itervalues(all_outs))) - len(six.next(six.itervalues(kwargs))) 
    200  if pad: 
    201   for out in all_outs: 

StopIteration: 

、私ははっきりと物事を説明しました。

答えて

2

あなたはforward_all()関数に転送したいデータを渡すことがあります。

pred_net = caffe.Net(pred_net_proto_file, 'kg_trained.caffemodel', caffe.TEST) 
pred_net.forward_all(data=data_samples) 

あなたのCNNは、形状(3224224)の画像は、あなたのdata_samplesは、20000(形状を持っている必要があり期待していたとし3,224,224)

+0

あなたの答えによると、 'forward_all'に何らかのデータを注入する必要があるようです。しかし、私の 'prototxt、net define'のデータソースは' lmdb'です、 'prototxt'の中のデータを使うことはできますか?ありがとう –

関連する問題