私はカフェに少し慣れていないので、奇妙な動作をしています。bvlc_reference_caffenet の微調整を使用して、OCR タスクを実行しようとしています。
私は彼らの事前訓練されたネットを取り、最後の FC 層を私が持っている出力クラスの数に変更し、再訓練しました。数千回の反復の後、損失率は ~.001 になり、ネットワーク テストでは 90% を超える精度が得られました。とはいえ、自分でネットワークをデータで実行しようとすると、7 ~ 8% を超えないひどい結果が得られます。
ネットを実行するために使用しているコードは次のとおりです。
[imports]
net = caffe.Classifier('bvlc_reference_caffenet/deploy.prototxt', 'bvlc_reference_caffenet/caffenet_train_iter_28000.caffemodel',
image_dims=(227, 227, 1))
input_image = caffe.io.load_image('/Training_Processed/6/0.png')
prediction = net.predict([input_image]) # predict takes any number of images, and formats them for the Caffe net automatically
cls = prediction[0].argmax()
このパフォーマンスが非常に悪い理由について何か考えはありますか?
ありがとう!
PS: 役に立つかもしれないし、役に立たないかもしれないいくつかの追加情報。以下に示すように分類する場合、分類子は実際に特定のクラスを優先しているようです。101 クラスの問題がありますが、最大 15 の異なるクラスしか割り当てられないようです
PPS: また、オーバーフィットしていないこともかなり確信しています。途中でスナップショットを使用してこれをテストしてきましたが、それらはすべて同じ悪い結果を示しています。