問題タブ [conv-neural-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - torch7 深層学習畳み込みニューラル ネットワークの例のデータを準備する方法は?
私は、自分のデータセットに torch7 の深層学習ライブラリ ( convolutionalneuralnetwork.lua ) で畳み込みニューラル ネットワークの例を使用しようとしています。100x100 バイナリ jpg 画像のデータセットがあり、次のディレクトリにあります。
/home/akshay/project/data/train -- トレーニング データ
/home/akshay/project/data/valid -- 検証データ
データセットを ImageSource に変更し、コードのようにその他の必要な変更を加えました。
しかし、コードを実行すると、次のようなエラーが発生しました。
1).データを別の方法で準備するにはどうすればよいですか?
2). 渡されたパラメーターが間違っていますか? また、どのように修正すればよいですか?
image-processing - 顔認識による誤検知
Mark Ruffalo の画像 (トリミングされた顔) でトレーニングされた CNN があります。私のポジティブ クラスには約 200 の画像があり、ネガティブ データポイントには 200 のランダムな顔をサンプリングしました。
モデルの再現率は高いですが、精度は非常に低くなります。どうすれば精度を上げることができますか?また、私が持っている肯定的な画像の数によって制約されています。このトレードオフでリコールを妥協する準備ができています。
負のサンプルの数を増やしてみましたが、それによって一種のバイアスが発生し、モデルは局所的な最適値を達成するためにすべてを負として分類し始めます。
CNN は overfeat に基づいています。
親切に助けて
machine-learning - Caffe と NEGATIVE IMAGES を使用した畳み込みニューラル ネットワーク
Caffe Deep Learning (または任意の CNN フレームワーク) で一連のクラス (#classes (クラス数) = N としましょう) をトレーニングし、 caffemodelにクエリを実行すると、その画像が OK である確率の % が得られます。 .
では、同様のクラス 1 の写真を撮ってみましょう。結果は次のとおりです。
1.- 90%
2.- 10%
残り... 0%
問題は、ランダムな写真を撮ると (たとえば、私の環境)、クラスの 1 つが優勢 (>90% の確率) であるが、どのクラスにも属さない同じ結果が得られ続けることです。
だから私が聞きたいのは、これを経験し、ニューラルネットワークへの意味のない入力に対処する方法を解決したであろう人々からの意見/回答です。
私の目的は次のとおりです。
- ネガティブ イメージを使用して、もう 1 つの追加クラスをトレーニングします ( train_cascade など)。
- TRAIN セットのすべてのポジティブ イメージと VAL セットのネガティブ イメージを使用して、もう 1 つのクラス エクストラをトレーニングします。
しかし、私の目的にはそれらを実行するための科学的根拠がありません。そのため、私はあなたにこの質問をします.
あなたならどうしますか?
事前にどうもありがとうございました。
ラファエル。
python - 入力に関するCaffe conv-filterの勾配を見つける
フィルターを視覚化する方法として、畳み込みニューラル ネットワーク (CNN) の単一の畳み込みフィルターの入力層に関する勾配を見つける必要があります。この例のようなCaffe
の Python インターフェースで訓練されたネットワークが与えられた場合、入力層のデータに関する conv-filter の勾配をどのように見つけることができますか?
編集:
cesansの回答に基づいて、以下のコードを追加しました。入力レイヤーの寸法は です[8, 8, 7, 96]
。私の最初の conv-layer にconv1
は、サイズが の 11 個のフィルターがあり、寸法は1x5
になり[8, 11, 7, 92]
ます。
出力からわかるように、返される配列net.backward()
の次元は、Caffe のレイヤーの次元と同じです。data
いくつかのテストの後、この出力がそれぞれ層と層に関する損失の勾配であることがわかりましたconv1
。
ただし、私の質問は、入力レイヤーのデータに関して単一の conv-filter の勾配を見つける方法でした。これは別のものです。どうすればこれを達成できますか?
cuda - CuDNN のインストールを確認するには?
私は多くの場所を検索しましたが、インストールされていることを確認する方法ではなく、インストールする方法だけが得られます。NVIDIA ドライバーがインストールされていること、および CUDA がインストールされていることは確認できますが、CuDNN がインストールされていることを確認する方法がわかりません。助けていただければ幸いです、ありがとう!
PS。
これはカフェの実装用です。現在、CuDNN を有効にせずにすべてが機能しています。
python - 畳み込みニューラルネットワーク?
「ムード検出」のプロジェクトに取り組んでいます。
完全な製品を作るための最初のステップとして、画像処理から始めました。Convolution-Neural-Network が最良のアプローチであることをインターネットから学びました。
上記は私が書いたコードです - 値 (850000,1100000) は、行列の畳み込み範囲の合計の値です (コードが非常に粗雑で申し訳ありません。今朝書き始めました)。
私が求めている質問は、重みを格納するマトリックスを設計または取得する方法です。
1) あらゆる種類のオブジェクト検出 (つまり、「車」と「顔」に異なる値を与える大まかな単層 CNN) に対して 1 つのマトリックスだけで間に合わせることができますか、または "車」と「顔」?
2) 同じオブジェクトの異なるサイズを処理する方法は? インターネットで見つけた解決策の 1 つは、元の画像のサイズを変更し続けることです。より速いアプローチがあるかどうか知りたいですか?
3) 逆伝播において、最適化された重み行列を取得するために与える大まかな条件は何ですか?
image-processing - Haarカスケード法と畳み込みニューラルネットワーク?
ハールカスケード法では、マスクサイズが一定で、画像内の顔のさまざまなサイズを考慮して、元の画像を縮小および拡大してオーバーラップを見つけるかどうか疑問に思っていました。
畳み込みニューラル ネットワークでは、重み行列のサイズが 20*20 で一定であることがわかりました。
これとは別に、haar cascade と CNN のどちらが顔検出に適しているかを知りたいです。その場合は、haar cascade を使用して最初に顔の位置を検出し、さらに CNN を使用して顔を認識することができます。
Ps :-face は単なるオブジェクトです。車や木など、他のものでもかまいません.....
c++ - Cifar10 予測出力を理解する方法は?
2 つのクラス分類用にCifar10
( caffe ) モデルをトレーニングしました。歩行者と非歩行者。トレーニングは問題ないようcaffemodel
です。ファイルの重みを更新しました。歩行者用の画像 (64 x 160) と背景画像 (64 x 160) と共に、歩行者用のラベル 1 と非歩行者用の 2 の 2 つのラベルを使用しました。トレーニング後、ポジ画像(歩行者画像)とネガ画像(背景画像)でテストを行います。私のテストprototxt
ファイルは以下のとおりです
テストのために、test_predict_imagenet.cpp
特にパスと画像サイズを使用していくつかの変更を加えました。
テスト出力がわかりません。ポジティブイメージでテストすると、次のような出力が得られました
ネガ画像でテストすると、次のような出力が得られました
テスト出力を理解するには?
ビデオ フィード (ビデオ クリップのフレームごと) からモデルをテストするための、より効率的なテスト アルゴリズムはありますか?
c++ - Caffe でトレーニング/検証プロセスを監視する
画像を分類するために Caffe Reference Model をトレーニングしています。私の仕事では、それぞれ 100K と 50K の画像を持つトレーニング セットと検証セット全体で 1000 回の反復ごとにモデルの精度のグラフを描画して、トレーニング プロセスを監視する必要があります。現在、私は素朴なアプローチを採用しており、1000回の反復ごとにスナップショットを作成し、生のJPEG画像を読み取ってネットに転送し、予測されたラベルを出力するC++分類コードを実行しています。ただし、これは私のマシン (Geforce GTX 560 Ti を使用) では時間がかかりすぎます。
トレーニング セットと検証セットの両方でスナップショット モデルの精度のグラフを取得するためにできる、より高速な方法はありますか?
生の画像の代わりに LMDB 形式を使用することを考えていました。ただし、LMDB 形式を使用して C++ で分類を行うことに関するドキュメント/コードが見つかりません。