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:
、私ははっきりと物事を説明しました。
あなたの答えによると、 'forward_all'に何らかのデータを注入する必要があるようです。しかし、私の 'prototxt、net define'のデータソースは' lmdb'です、 'prototxt'の中のデータを使うことはできますか?ありがとう –