1

皆さん、私はcaffeを使って "SSD:Single Shot MultiBox Detector"で5クラス検出タスクを練習したいので、num_classesを21から6に変更しました。エラー:caffe列車でエラーが発生しました

は "チェックに失敗しました:。num_priors_ * num_classes_ ==下の[1] - 事前分布の>チャンネル()(52392対183372)数は、信頼予測の数と一致している必要があり"

私が理解することができますこのエラーと私は52392/6 = 183372/21、つまりnum_classesを6に変更した理由を発見しましたが、信頼性予測の数はまだ183372です。この問題を解決する方法。どうもありがとうございました!

+0

ラベルには5つのクラスしか含まれていませんか? – malreddysid

+0

@malreddysidはい、多分信頼の予測の数は作者によって決められているので、それは私にとってうまくないので、問題を解決する方法は、私は5クラスのモデルを訓練したいだけです。 –

答えて

2

SSDは分類出力だけでなくBB予測のラベル数にも依存するため、モデル内の他のいくつかの場所でnum_outputを変更する必要があります。
私はあなたが手動で行うのではなく、'examples/ssd'フォルダにあるpythonスクリプトを使用することを強くお勧めします。たとえば、あなたがにline 277 in 'examples/ssd/ssd_pascal_speed.py'を変更することができます。

num_classes = 5 # instead of 21 

そして、このスクリプトが提供するモデルファイルを使用します。

+1

あなたに感謝します。著者LiuWeiが「conf_postfix = "_ whatever_you_like"をssd_pascal.pyのCreatMultiBoxHeadに追加」と言っています。しかし、windows caffeはVSでコンパイルされているので、ssd_pascal.pyは機能しません。ウィンドウのファイルを修正したいのですが、 –

+0

@ H.Haoはpythonスクリプトを実行するとすべてのprototxtファイル列車、テスト、ソルバー)を適切な 'num_output'で作成します。これらのファイルを使用してcaffeを手動で実行することができます。 – Shai

関連する問題