問題タブ [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 - 再帰層による奇妙な勾配の結果
私は非常に基本的な再帰型ネットワークで実験を行っており、非常に奇妙な動作を見てきました。どこがうまくいかないかを絞り込むためにかなりの時間を費やしましたが、再帰層を使用すると、theano と有限微分によって計算される勾配が根本的に異なることがわかりました。ここで何が起こっているのですか?
これが私が抱えている問題の種類です:
n_class クラス間のラベルとともに、次元 n_feat の n_steps 特徴ベクトルの n_seq シーケンスがあります。ラベルは、シーケンスごとではなく、時間ステップごとです (したがって、n_seq*n_steps ラベルがあります)。私の目標は、モデルをトレーニングして、特徴ベクトルを正しく分類することです。
これが私の最小限の例です:
(実際には、データにはシーケンシャルな情報が含まれているため、再帰型ネットワークの方がうまくいくはずですが、この最小限の例では純粋にランダムなデータを生成します。これはバグを明らかにするのに十分です。)
2 つの最小限のネットワークを作成します。
1) 通常のフィード フォワード (再帰的ではない)。入力層とソフトマックスを含む出力層 (隠れ層なし) のみ。n_seq*n_steps の「独立した」特徴ベクトルの「バッチ」を考慮して、順次情報を破棄します。
2) 同一のネットワークですが、出力層は再帰的です。バッチのサイズは n_seq になり、各入力は n_steps 特徴ベクトルの完全なシーケンスになります。最後に、出力をサイズ n_seq*n_steps の「バッチ」に戻します。
再帰重みが 0 に設定されている場合、2 つのネットワークは同等である必要があります。実際、この場合、フィードフォワード重みのランダムな初期化に関係なく、両方のネットワークの初期損失が同じであることがわかります。有限微分を実装すると、フィードフォワードの重みの (初期の) 勾配が (本来あるべきように) 同じであることもわかります。ただし、theano から得られる勾配は根本的に異なります (ただし、リカレント ネットワークの場合のみ)。
サンプル結果を含む私のコードは次のとおりです。
注:初めて実行すると、この警告が表示されます。何が原因かわかりませんが、私の問題に関連していると思います。警告: 厳密モードでは、必要なすべての共有変数を non_sequences の一部として渡す必要があります 'must be pass as a part of non_sequences', 警告)
どんな洞察も大歓迎です!
コード:
結果:
neural-network - 最大プーリング インデックス
ラザニアでインデックス2d max poolingを見つけようとしています
モデルを構築しようとすると、エラーが発生します
ラザニア層の中間出力で関数をコーディングする正しい方法は何ですか。
machine-learning - ラザニアの LSTM で考えられる問題
チュートリアルで示されているように、LSTM の単純なコンストラクターと次元 [ , ,1] の入力を使用すると、形状 [ , ,num_units] の出力が表示されることが期待されます。ただし、構築中に渡された num_units に関係なく、出力は入力と同じ形状になります。
以下は、この問題を再現する最小コードです...
修飾されていない LSTM (つまり、デフォルト モード) は、ユニットごとに 1 つの出力を生成する必要があります。コードは kaixhin の cuda lasagne で実行されまし た 。ありがとう !
python - lasagne / nolearn ニューラル ネットワークのパラメーターのトレーニング可能な属性の設定を解除する
私は lasagne nolearn を使用して畳み込みニューラル ネットワークを実装しています。
事前学習したいくつかのパラメータを修正したいと思います。一部のレイヤーをトレーニング不可に設定するにはどうすればよいですか?
実際には、一部のレイヤーの「trainable」属性を削除しましたが、フィッティング前のレイヤー情報に示されている番号、つまり、
学習可能なパラメーターが *** のニューラル ネットワークは変化しません。
あと、残念ながら「handers.py」の挨拶機能は
する必要があります
しかし、それがトレーニングにどのように影響するかはわかりません。
theano - Theano/Lasagne を使用して ImageNet のような大規模なデータセットでトレーニングするためのベスト プラクティスは?
Theano/Lasagne の例はすべて、メモリに完全にロードできる mnist や cifar10 などの小さなデータ セットを扱っていることがわかりました。
私の質問は、大規模なデータセットでトレーニングするための効率的なコードを作成する方法です。具体的には、GPU をビジー状態に保つためにミニバッチ (リアルタイムのデータ拡張を含む) を準備する最善の方法は何ですか?
たぶん、CAFFE の ImageDataLayer を使用するのが好きですか? たとえば、すべての画像パスとラベルを含む大きな txt ファイルがあります。いくつかのコードを示していただければ幸いです。
どうもありがとうございました!
python - ラザニアの基本的な例が機能しない?
ラザニアのドキュメントから直接、ラザニアのインストール手順を実行しました。そして今、次の例を実行しています: https://github.com/Lasagne/Lasagne/blob/master/examples/mnist.py
予想される出力は、ラザニア ドキュメントのチュートリアル ページに示されています。
しかし、これまでのところ、「トレーニングを開始しています...」という行にぶら下がっています。かなり長い間、このラインで立ち往生しています。
私のセットアップに問題がある可能性がある明らかなことはありますか?
MinGW gcc をダウンロードし、pip から以下を使用して環境変数を設定しました 。
また、pipを使用してラザニアをダウンロードし、numpyとscipyもダウンロードしました。
deep-learning - ケラスとラザニアの高速道路ネットワーク - パフォーマンスの大きな違い
keras と lasagne を使用して高速道路ネットワークを実装しましたが、keras バージョンは一貫して lasagne バージョンよりもパフォーマンスが劣っています。両方で同じデータセットとメタパラメータを使用しています。keras バージョンのコードは次のとおりです。
ラザニアバージョンのコードは次のとおりです。
現在、ケラス バージョンはロジスティック回帰をかろうじて上回っていますが、ラザニア バージョンはこれまでのところ最高のスコアリング アルゴリズムです。理由についてのアイデアはありますか?
python - 次の Lasagne の MLP でテスト データの出力ターゲット値を取得する方法
http://lasagne.readthedocs.org/en/latest/user/tutorial.html#id2
私は次のことを試しました
ただし、ここで Y_hat のすべてのサンプルに対して NAN を取得します。
編集: NAN の問題を解決できました。ただし、私の予測は1つのクラスのみを返します(1)