問題タブ [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.
python-2.7 - 畳み込みニューラルネットワーク?
さて、私はニューラルネットワークの考え方を理解し始めていますが、特に画像処理のための畳み込みニューラルネットワークの使用/利点/実装をまだ理解できていません.
私が理解していないのは、異なるサイズのオブジェクトを検出する方法です。
50*50 の重み行列と、50*50 サイズのトレーニング セットに顔があるとします。行列の加重合計を取ると、 "X" などの特定の値が返されます。これで、画像全体に重み行列を実行して、顔を検出した ~"X" の重み付き合計を与える領域をロックするというアイデアを理解しました。
上記の理解が正しい場合、サイズ 25*25 のイメージが "X" のどこにでも値を複製することはどのように行われるのでしょうか。したがって、基本的な問題は、画像の相対的なサイズをどのように処理するかです。
可能であれば、同じための優れたチュートリアルをいくつか提案してください。
python - Theano - 大規模なデータセットの関数の入力としての共有変数
私はTheanoを初めて使用しています...これが明らかな場合は申し訳ありません。
LeNet チュートリアルに基づいて、CNN をトレーニングしようとしています。チュートリアルとの主な違いは、データセットが大きすぎてメモリに収まらないため、トレーニング中に各バッチを読み込む必要があることです。
元のモデルには次のものがあります。
train_set_x
...完全にメモリにロードされていると想定しているため、これはうまくいきません。
だから私はこれに切り替えました:
そしてそれを呼び出そうとしました:
しかし得た:
TypeError: ('名前 ":103" のインデックス 0 (0 ベース) の theano 関数への入力引数が正しくありません', '配列のようなオブジェクトが必要でしたが、変数が見つかりました: おそらく、(おそらく共有)数値配列の代わりに変数?')
したがって、共有変数を Theano 関数への入力として使用することはできないと思います。では、どうすればいいのでしょうか…?
deep-learning - 中程度のフレームレートで CaffeNet モデルを使用して歩行者を検出する
私は CaffeNet (より正確には 2 クラス分類用の Cifar10 モデル) モデルをトレーニングします。これで、モデルを検出する準備が整いました。単一の画像を使用したモデル テストでは、test_predict_imagenet.cpp
. 640 x 480 の画像でコードがどれだけ速く実行できるかはテストしていません。私の目標は、5~10 フレーム/秒が好きで、オフライン検出にちょうどいいです。各フレームで歩行者を見逃さないように、マルチサイズ検出を実装する必要があることを理解しています (つまり、顔検出で行っているようなもので、元の画像サイズはさまざまな小さいサイズに合わせてサイズ変更されます)。
この論文によると、トレーニングでは 64 x 128 の画像サイズを使用し、検出には 3 ミリ秒/ウィンドウ、100 ウィンドウ/画像の場合は 300 ミリ秒/フレームが必要です。彼らがマルチサイズ検出アプローチを実装しているかどうかはわかりません。マルチサイズが実装されている場合は、さらに時間がかかります。
現時点ではtest_predict_imagenet.cpp
、マルチサイズ検出の実装方法についての知識しかありません。私はそれが非常に遅いことを知っています。CaffeNet モデルを使用したより効率的な検出方法はありますか? 私の目標は、5〜10フレーム/秒のレートでちょうどいいです。ありがとう
machine-learning - 感情分析のための畳み込みニューラル ネットワーク
CNN を使用して感情分析のために YoonKim のコードを変更しようとしていました。彼は と の 3 つのフィルターを適用heights=[3,4,5]
しwidth=300
ます。
私は最初のConv,Pool
計算の後に立ち往生しています。検討
64 はすべての文ベクトルの長さで、300 は単語の埋め込みサイズです。
彼の実装では、最初に高さ = 3、幅 = 300 のカーネルを適用します。したがって、出力は次のようになります
その後、彼は を使用してダウンサンプリングしpoolsize=(62, 1)
ます。MaxPooling 後の出力は
これは私が立ち往生しているところです。この論文では、彼は と の 3 つのフィルターを適用heights[3,4,5]
していwidth=300
ます。しかし、最初のフィルターを適用した後は、畳み込み用の入力が残っていません。どのように (そして何に) 2 番目のカーネルを適用しますか?.
どんな助けや提案も素晴らしいでしょう。git ページには論文へのリンクが含まれています。
neural-network - 1 つのフォルダに配置されていない画像に対して、カフェで convert_imageset を使用するにはどうすればよいですか?
Caffe フレームワークを使用して自分のデータセットで CNN をトレーニングしようとしています。速度効率のために、データセットを lmdb または leveldb 形式に変換することを強くお勧めします。そのためには、すべての画像を 1つのフォルダーに入れ、'list.txt'
それに応じて準備する必要があります。私自身のデータセットは非常に巨大で、非常に多くのフォルダーとサブフォルダーに含まれているため、それらすべてを 1 つのフォルダーにコピーするのは非常に面倒です。したがって、すべての画像を単一のフォルダーにコピーする必要なく、lmdb ファイルを生成する別の方法があるかどうかを知りたいと思っています。
machine-learning - 畳み込みニューラル ネットワークの深さとは何ですか?
CS231n Convolutional Neural Networks for Visual Recognitionから Convolutional Neural Network を見ていました。畳み込みニューラル ネットワークでは、ニューロンは 3 次元 ( height
、width
、depth
) に配置されます。depth
CNNの に問題があります。私はそれが何であるかを視覚化することはできません。
リンクで彼らは言っThe CONV layer's parameters consist of a set of learnable filters. Every filter is small spatially (along width and height), but extends through the full depth of the input volume
た。
たとえば、この写真を見てください。画像が汚すぎたらごめんなさい。
画像から小さな領域を取り、それを「フィルター」と比較するという考えを理解できます。フィルターは小さな画像のコレクションになりますか?また、彼らWe will connect each neuron to only a local region of the input volume. The spatial extent of this connectivity is a hyperparameter called the receptive field of the neuron.
は、受容野はフィルターと同じ次元を持っていると言いましたか? また、ここの深さはどうなりますか?そして、CNN の深さを使用して何を意味するのでしょうか?
したがって、私の質問は主に、次の次元の画像を取得した場合[32*32*3]
(これらの画像が 50000 個あり、データセットを作成している[50000*32*32*3]
とします)、その深さとして何を選択し、深さによって何を意味するかということです。また、フィルターの寸法はどのようになりますか?
また、誰かがこれについての直感を与えるリンクを提供できれば、非常に役立ちます。
編集:チュートリアルの一部(実世界の例の部分)で、それは言いますThe Krizhevsky et al. architecture that won the ImageNet challenge in 2012 accepted images of size [227x227x3]. On the first Convolutional Layer, it used neurons with receptive field size F=11, stride S=4 and no zero padding P=0. Since (227 - 11)/4 + 1 = 55, and since the Conv layer had a depth of K=96, the Conv layer output volume had size [55x55x96].
ここでは、深さが 96 であることがわかります。または私が計算する何か?また、上記の例 (Krizhevsky et al) では、深さは 96 でした。では、その 96 の深さは何を意味するのでしょうか。チュートリアルにも記載されてEvery filter is small spatially (along width and height), but extends through the full depth of the input volume
います。
ということは深さはこんな感じでしょうか。もしそうなら、私は仮定できDepth = Number of Filters
ますか?
python - 機能を SVM で使用する前に L2 正規化を使用する方法
畳み込みニューラル ネットワークから抽出された機能を使用して SVM をトレーニングしています。この論文 ( http://arxiv.org/pdf/1405.3531v4.pdf ) に書かれているように、フィーチャに SVM を適用する前にフィーチャを L2 正規化することをお勧めします。
この関数を使用してベクトルを正規化します。
この正規化の後、精度が約 60% から 20% に低下したため、明らかに何かが間違っています。L2 ノルムを使用して SVM 用にベクターを適切に準備するにはどうすればよいですか?
neural-network - ニューラルネットワーク層スキームでP文字は何を意味しますか?
MNISTデータベースに関するウィキペディアの記事では、エラー率が最も低いのは「35 の畳み込みネットワークの委員会」のスキームであると言われています。
1-20-P-40-P-150-10
このスキームはどういう意味ですか?
数字はおそらくニューロンの数です。しかし、それではどういう1
意味ですか?
P
文字の意味は?
neural-network - Torch: テキストと数値入力を処理する NN
私は次のNNアーキテクチャを持っています:
パート1:
パート2:
私がやりたいことは、これら2つの部分の出力を別の部分への入力として使用することです:
パーツ 1 には 128 の出力があり、パーツ 2 には 4 があり、最後にパーツ 3 には 132 の入力があることに注意してください。したがって、基本的には、2 種類の入力 (パート 1 はテキスト用、パート 2 は数値ベクトル用) を受け取り、これらの両方の情報を 3 番目のレイヤーで 2 クラス分類に使用するネットワークが必要です。
さまざまなコンテナを見てきましたが、必要なものはないようです。具体的には、nn.Parallel を見てきましたが、ドキュメントからは、まったく異なることをしているように見えます (2 つの異なるモジュールに対する同じ入力)。最初の問題は、ネットワークの入力がどのように見えるかです (各部分は異なるタイプのテンソルを使用するため、最初の要素が 2D テンソルで、2 番目の要素が 1D テンソルである単純なテーブル (配列) で十分だと思いました)。 ) そして、その出力を別のネットワークに接続して、通常どおり前方/後方呼び出しを使用できるようにする方法。
これを行う方法はありますか?
ありがとう!