0

ネットの出力層の変更に関する質問があります(AlexNet/GoogleNet/ImageNet)。したがって、標準出力は1x1000ベクトルなので、各クラスに対して1つの値となります。AlexNet/GoogleNet/ImageNetの出力レイヤーを変更しますか?

出力を5に変更できることがわかっているので、5つのクラスしかない場合は1x5のVectorが得られます。

私はクラスを持っていない場合はどうなりますか?出力を18x18のような行列に変更することは可能ですか?私のネットは "クラス"ではなく密度マップを出力する必要があるからです。 私の仕事には事前にトレーニングされたネットを使用することをお勧めしますか?

答えて

5

:-)ご協力いただきありがとうございますしかし、私はクラスを持っていない場合は何ですか?

「クラス」という概念は、実際にはアーキテクチャに接続されておらず、損失機能自体に接続されていません。言い換えれば、1000個の出力がある場合、1000個の分離クラス間で分類したいか、1000個のタグを割り当てるか、または1000次元実出力に対して回帰するかは問題ではありません。

それは「ナイーブ」アプローチは、出力18 * 18 = 324の値にすることと、2次元の行列として扱うことになる18×18

様マトリックスへの出力を変化させることができます。しかし、2次元構造は、アーキテクチュア側で利用できるいくつかの特性があることを示唆しています。典型的な特性の1つは変換不変性で、コンビネーションで悪用されます。同じものが出力に当てはまる場合は、あなたのモデルには多くのものがあるのでソートしてください)。

私の仕事に事前に訓練されたネットを使用することをお勧めしますか?または私は最初から学ぶ声を出しますか?

これはアーキテクチャに依存するのではなく、タスクです。あなたの仕事が訓練されたものと似ていれば、事前に訓練されたものを出発点として使用し、新しいものをちょうど微調整することができます。一般に、事前訓練されたネットを出発点として使用するのは安全なことです(最初から訓練するよりも悪いはずはありません)。 ネットワーク全体を訓練することを忘れないでください。ただし、(構造全体を訓練するのに十分なデータがない限り)部分だけではありません。

関連する問題