2017-10-01 22 views
1

イメージに存在するまたは存在しない小さなオブジェクトを検出するために、バイナリイメージ分類タスク用にCNNを設計したいと考えています。画像はグレースケール(符号なしの短い)で、サイズは512x512(2048x2048から既にダンプされています)です。トレーニングとテストには数千の画像があります。CNNパラメータの見積もり

この種のタスクにはCNNを初めて使用していますが、開始するまで〜80%の精度を達成することを願っています。そのため、CNNをどのように設計するかについて知りたいと思います私の目標を達成するチャンス。

私の具体的な質問は以下のとおりです。

  1. 私はどのように多くのコンボリューション層と完全に接続された層を使用する必要がありますか?

  2. 各畳み込み層に含まれるフィーチャマップの数と、完全に接続された各層のノード数はいくつですか?

  3. 各畳み込み層のフィルタサイズはどれくらいですか?

私はTensorFlowバックエンドでKerasを使用してCNNを実装しようとしている、と私のコンピュータのスペックは以下のとおりです。3.5 GHzの@ 8つのIntel Xeon CPUを。 32 GBのメモリ。 2 NVIDIA GPU:GeForce GTX 980およびQuadro K4200

これらのハードウェアとソフトウェアでは、トレーニングの計算時間を知りたいと思います。具体的には、

上記の1000画像のエポックでCNN(上記の構造)を訓練するにはどのくらい時間がかかりますか?(一般的に)~80%の精度を達成するには何エポックが必要ですか?

私が典型的な計算時間を知りたい理由は、すべてを正しく設定することです。

私の最初の投稿ではあまり質問しませんでした。

+1

あなたはニューラルネットワークのパラメータについて質問しますが、特にこの質問のための "一般的な"答えはありません。特に異なるデータセットではそうです。あなたは実験によって最高のパラメータを見つける必要があります – malioboro

+0

@malioboro OK、一般的な答えがない場合は、あなたの経験から光を捨てることができますか? – mjk

+0

スタンフォードCS231nコースからCNNパラメータを設定する際の一般的なアドバイスを受けることができます。 –

答えて

1

ケアがVGG16、VGG19、InceptionV3などのタスクのために用意されている既存のモデルのいずれかを使用すると、おそらくうまくいくでしょう:https://keras.io/applications/

あなたはそれらを試してみて、別のパラメータを試してみてください。ここで少し微調整してみてください。クラスが1つしかないので、おそらくより小さなバージョンを試すことができます。 https://github.com/fchollet/keras/tree/master/keras/applications

スピードは非常に非常に相対的であるに

すべてのコードを見つけることができます。各インストール方法、各ドライバ、各バージョン、各運用システムが実際にハードウェア機能を適切に、または完全に使用しているかどうかはわかりません。

しかし、あなたの仕様では、すべてがうまく設定されていれば、かなり速くなるはずです。

+0

あなたの答えをありがとう、ダン。 「それはかなり速い」と言えば、1エポック当たり数秒で数秒かかりますか?私が尋ねる理由は、すべてのことを正しく設定することです。 – mjk

+0

画像のサイズは? 1つの大きなイメージ(1200x1800)または同様の領域をカバーするいくつかの小さなイメージをピクセル単位で含む「バッチごとに」数秒かかるはずです。少なくとも私はTesla K80を使ってGoogle VMでこれを達成しました。しかし、それはモデルのサイズにも大きく依存します。私のモデルには約10万の訓練可能なパラメータがありました。 –

関連する問題