問題タブ [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.
matlab - RGB イメージからの HDF5 の作成 matlab
hdf5を介してテストとトレーニングの画像をカフェにフィードするつもりです。ただし、その前にいくつかの前処理が必要です。以下は私の hdf5 変換コードです。私の画像はすでに 256*256 です。
その後、
hdf5write('my_data.h5', '/X',X);
この方法の正しさについてはよくわかりません。助けてください!(また、hdf5 での処理方法がわからないため、ここではオーバーサンプリングを行っていません。)
theano - theano 深層学習チュートリアルの畳み込み層の出力のサイズについて混乱しています
[ http://deeplearning.net/tutorial/lenet.html#lenet]
上記のリンクでは、最初の畳み込みプーリング層を構築します: フィルタリングにより、画像サイズが (28-5+1 , 28-5+1) = (24, 24) に縮小されます。
サイズ a のデータをサイズ b のフィルターでたたみ込むと、サイズ a+b-1 の出力が得られます。ここではデータサイズは 28*28、フィルターサイズは 5*5 です。したがって、出力サイズは (28+5-1,28+5-1) になります。(28-5+1,28-5+1)として与えられます
numpy - Theano の flatten 関数に関する明確化
[ http://deeplearning.net/tutorial/lenet.html#lenet]には次のように書かれています:
numpy 3D 配列で flatten 関数を使用すると、1D 配列が得られます。しかし、ここでは行列を取得すると言っています。flatten(2) は theano でどのように機能しますか?
numpy での同様の例では、1D 配列が生成されます。
deep-learning - 開始スタイルの畳み込み
アプリで効率的に実行できる画像分類器を展開するために、モデルをできるだけ小さく保つ必要があります (精度は私にはあまり関係ありません)。
私は最近深層学習に取り組みましたが、あまり経験がありません。そのため、現在 cifar-10 の例で遊んでいます。最初の 2 つの5x5畳み込み層を、それぞれ 2 つの 3x3 畳み込みに置き換えようとしました。
残念ながら、テスト セットを分類しようとすると、約 0.1 の正しい分類 (ランダム選択) が得られました。
これは、最初のレイヤーの変更されたコードです (2 番目のレイヤーも同様です)。
それが正しいか?
image-processing - TensorFlow CNN による画像分類
私は CNN を使用した画像分類に非常に慣れていないため、Google CNN のチュートリアルに従いました: https://www.tensorflow.org/tutorials/images/cnn
これは非常にうまく機能しますが、モデルのトレーニングと評価の後、突然停止します。なぜ彼らが止まるのかわからない:(
次のようなpython関数があるかどうかは誰にもわかりますか?
クラスと、可能であれば見つかったオブジェクトのすべてのピクセルを返します。またはこれを行う方法は何ですか?
machine-learning - アンバランスなトレーニング セットで重みを使用する Torch7
convnet で CrossEntropyCriterion を使用しています。150 のクラスがあり、クラスごとのトレーニング ファイルの数が非常に不均衡です (5 ~ 2000 ファイル)。ドキュメントによると、重みを使用してこれを補正できます。
「指定する場合、オプションの引数 weights は、各クラスに重みを割り当てる 1D Tensor にする必要があります。これは、不均衡なトレーニング セットがある場合に特に役立ちます。」
重みはどのような形式にする必要がありますか? 例: クラス n のトレーニング ファイル数 / トレーニング ファイルの総数。
machine-learning - MultiLabelMarginCriterion に代わる Torch7
解決すべきマルチクラス ラベルの問題があります。つまり、各テスト イメージには 1 ~ 10 個の非排他的ラベルを割り当てることができます。
ただし、cunn でサポートされていないため、MultiLabelMarginCriterion に問題があります。だから、私は代替アプローチを探しています。これらのいずれかが効果的でしょうか?
トレーニング セット (約 150) 内のラベルの各順列を計算し、それらの 150 クラスを識別するように分類子をトレーニングします。ただし、テスト セット内のラベルの新しい順列 (トレーニング セットにないもの) が認識されないとは思いません。
BCECriterion を使用して 10 個の個別のバイナリ分類器をトレーニングします。つまり、ラベルごとに 1 つの分類器。各分類器で各テスト イメージを実行し、結果を結合します。ただし、多くの CNN をトレーニングするには時間がかかります。
machine-learning - 畳み込みニューラル ネットワークの理解に問題があります
ここから畳み込みニューラル ネットワークについて読みました。それから torch7 で遊び始めました。CNN の畳み込み層と混同しています。
チュートリアルから、
1
The neurons in a layer will only be connected to a small region of the layer before it, instead of all of the neurons in a fully-connected manner.
2
For example, suppose that the input volume has size [32x32x3], (e.g. an RGB CIFAR-10 image). If the receptive field is of size 5x5, then each neuron in the Conv Layer will have weights to a [5x5x3] region in the input volume, for a total of 5*5*3 = 75 weights.
3
入力レイヤーが[32x32x3]の場合、CONV layer will compute the output of neurons that are connected to local regions in the input, each computing a dot product between their weights and the region they are connected to in the input volume. This may result in volume such as [32x32x12].
CONVレイヤーが画像に何をするかを試し始めました。私はtorch7でそれをしました。ここに私の実装があります、
CNNの構造を見てみましょう
だから、私の質問は、
質問1
畳み込みはこのように行われますか - 32x32x3 の画像を取得するとしましょう。そして5x5フィルターがあります。次に、5x5 フィルターは 32x32 画像全体を通過し、畳み込み画像を生成しますか? 画像全体で 5x5 フィルターをスライドすると、1 つの画像が得られます。10 個の出力レイヤーがある場合は、10 個の画像が得られます (出力からわかるように)。どうやってこれらを手に入れますか?(必要に応じて説明のための画像を参照してください)
質問2
conv 層のニューロンの数は? 出力層の数ですか?私が上に書いたコードでは、model:add(nn.SpatialConvolutionMM(3, 10, 5, 5))
. 10ですか?(出力層の数?)
もしそうなら、ポイント番号2は意味がありません。それによるとIf the receptive field is of size 5x5, then each neuron in the Conv Layer will have weights to a [5x5x3] region in the input volume, for a total of 5*5*3 = 75 weights.
、ここの重さはどうなるの?私はこれに非常に混乱しています。torch で定義されたモデルでは、重みはありません。では、ここで重量がどのような役割を果たしているのでしょうか?
誰かが何が起こっているのか説明できますか?
machine-learning - GitHub から cunn のバージョンをインストールし、multilabelmargin 基準を使用する
CNN をトレーニングするには、torch7 で multilabelmargin 基準を使用する必要があります。現在のcunnではサポートされていません。ここに示すように、別のバージョンの cunn をインストールしようとしました: source
ただし、そうすると、トーチが機能しなくなり、エラーが発生します。
その後、ezinstall を使用して torch7 を再インストールする必要がありました。torch のインストールに影響を与えることなく、必要な cunn のバージョンを正しくインストールして、multilabelmargin を使用するにはどうすればよいですか?