問題タブ [lasagne]
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 - Lasagne / Theano グラデーション値
私は現在、Lasagne / Theano を使用してリカレント ニューラル ネットワークに取り組んでいます。
トレーニング中、更新は Theano のシンボリック勾配を使用して計算されます。
勾配式は一般的にまったく問題ありませんが、トレーニングを監視するために勾配値にも関心があります。
私の質問は、これまでに見つけられなかった勾配値も取得する組み込みの方法があるかどうか、または自分で行う必要があるかどうかです。
前もって感謝します
numpy - Lasagne/Theano はマルチコアを消費しませんが、check_blas.py は消費します
複数のCPUコアを備えたLasagne/Theanoでロジスティック回帰分類器を実行しています。
これは私の~/.theanorcファイルです:
theano/misc/ check_blas.pyは 20 コアすべてを消費しますが、私のスクリプトは消費しません。私が実行すると:
openmp の値が False であることがわかります。
openmp () Doc: OpenMP を使用した CPU での並列計算を許可する (または許可しない)。これは、OpenMP 並列化をサポートする Op を作成するときに使用されるデフォルト値です。Theano 構成ファイル ~/.theanorc または環境変数 THEANO_FLAGS を使用して定義することをお勧めします。並列化は、それを実装する一部の操作に対してのみ行われ、並列処理を実装する操作の場合でも、各操作はこのフラグを尊重するかどうかは自由です。環境変数 OMP_NUM_THREADS で使用されるスレッドの数を制御できます。1 に設定すると、デフォルトで Theano の openmp が無効になります。 値: 偽
スクリプトのマルチコア機能を有効にする方法を知っている人はいますか?
blas、atlas、openmp などがシステムにインストールされており、前述のとおり、check_blas.py で完全に動作します。
python - 将来の分類のために theano/lasagna 出力パラメーターを保存する
後日トレーニング/分類を続行できるように、出力パラメーターを保存しようとしています。
私は現在使用しています:
ここで提案されているように。しかし、ラザニアから get_all_param_values をインポートしても、エラーが発生し続けます。
AttributeError: 'TensorVariable' オブジェクトに属性 'get_params' がありません
保存しようとしているレイヤーは次のとおりです。
私は何か間違ったことをしていますか?
python - 各レイヤーのラザニア カスタム フィルター
インターネットでいろいろ調べたのですが、答えが見つかりません!「ラザニア」パッケージの各レイヤーにカスタムフィルターをPythonで定義することはできますか? (特別なフィルターから選択するのではなく、レイヤーごとにフィルターを設計します)
はいの場合、CNN を設計するこの機能を提供できるライブラリはありますか (プラットフォームは重要ではありませんが、python または matlab が推奨されます)。
neural-network - BatchNormLayer を適切に追加して使用する方法は?
序章
ラザニアのドキュメントによると、「このレイヤーは、線形変換 (DenseLayer、または Conv2DLayer など) とその非線形性の間に挿入する必要があります。便利な関数 batch_norm() は、既存のレイヤーを変更して、その非線形性の前にバッチ正規化を挿入します。」
ただし、ラザニアにはユーティリティ関数もあります。
lasagne.layers.batch_norm
ただし、私の側での実装により、その機能を使用できません。
私の質問は: BatchNormLayer をどこにどのように追加すればよいですか?
畳み込み層の後に追加できますか? または、maxpool の後に追加する必要がありますか? レイヤーのバイアスを手動で削除する必要がありますか?
使用したアプローチ 私はこのように使用しました。
参考文献:
https://github.com/Lasagne/Lasagne/blob/master/lasagne/layers/normalization.py#L120-L320
http://lasagne.readthedocs.io/en/latest/modules/layers/normalization.html
neural-network - ラザニアで畳み込み層を使用してから再帰層を使用する
私は、一方の軸で音符/ピッチの入力を受け取り、もう一方の軸でその音符のオクターブを受け取るニューラル ネットワークを実装しようとしています。
入力は、畳み込みレイヤー (Conv2DLayer) を通過することになっています。畳み込みの後、出力は LSTM レイヤーを通過する必要があります。
入力 -> 畳み込み層とプーリング層 -> LSTM 層 -> 出力
問題は、LSTM 層と畳み込み層が特定の入力形状を持っていることです。
Conv2DLayer の予想される入力形状: (batch_size, num_channels, rows, columns) LSTMLayer の予想される入力形状: (batch_size, sequence_len, num_inputs)
形状 (batch_size、sequence_len、num_channels、rows、columns) などの入力を取得して、そのようなネットワークを構築するにはどうすればよいですか? sequence_len を削除して形状を変更して平坦化すると、行または列のいずれかを変更する必要があり、形状が歪んでしまいます。