問題タブ [dcgan]
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 - エラー「ValueError: 入力をチェックするときにエラーが発生しました: 入力_1 が 4 次元であると予想されましたが、形状 (12, 1) の配列を取得しました」
自分のデータセットに一般的な敵対的ネットワークモデルを実装していますが、実際のデータで弁別損失を計算するときにエラーが発生しました。エラーを解決するにはどうすればよいですか? カラー画像による形状の不一致によるものでしょうか?
以下は、弁別関数です。
以下は Generator 関数です。
以下はトレーニング機能です。
deep-learning - BatchNormalization の悪い結果
私はフェイスブックのペーパーであるDCGanを実装しようとしてきましたが、以下の 2 つの問題によってほぼ 2 週間にわたってブロックされました。任意の提案をいただければ幸いです。ありがとう。
問題 1:
DCGAN 論文では、ジェネレーターとディスクリミネーターの両方に BN (バッチ正規化) を使用することが提案されています。しかし、BN無しよりBN有りの方が良い結果は得られませんでした。
私が使用した DCGAN モデルをコピーしました。これは、DCGAN ペーパーとまったく同じです。オーバーフィッティングによるものではないと思います。(1) 最初のノイズ画像と同じノイズを表示し続け、訓練されていないように見えるからです。(2) Loss 値は非常に安定しており、gan と discriminator の両方が実際には変更されていません。(0.6~0.7程度で、両モデルが倒れたときのような落ち込みや跳ね上がりはありません)
問題 2:
float16 を使用すると、常に以下のモデルで Nan が返されます。イプシロンを 1e-4 1e-3 両方に変更しましたが失敗しました。そして、ここでもう 1 つの質問があります。BatchNormalization を使用しない場合、Nan になる可能性があります。それは十分に理にかなっています、私はそれを得ることができます。しかし、BatchNormalization を使用すると、すべてのレイヤーで正規化されます。結果が非常に大きな数または非常に小さな数になったとしても、結果がほぼ中央に配置され、フェードアウトが発生しないように、すべてのレイヤーでバッチ正規化されます。ではない?それは実際には私の考えですが、何が間違っているのかわかりません..誰か、助けてください。
===== ジェネレータ =====
入力番号 (なし、128) <= 潜在
Dense # (None, 16384)
BatchNormalization
LeakyReLU
リシェイプ # (なし、4、4、1024)
Conv2DTranspose # (なし、4、4、512)
バッチ正規化 LeakyReLU
Conv2DTranspose # (なし、8、8、256)
バッチ正規化 LeakyReLU
Conv2DTranspose # (なし、16、16、128)
バッチ正規 化 LeakyReLU
Conv2DTranspose # (なし、32、32、64)
バッチ正規化 LeakyReLU
Conv2DTranspose # (なし、64、64、32)
バッチ正規化 LeakyReLU
Conv2DTranspose # (なし、128、128、16)
バッチ正規化 LeakyReLU
Conv2D # (なし、128、128、3)
===== 識別器 =====
Conv2D # (なし、128、128、3) LeakyReLU
Conv2D # (なし、64、64、16) BatchNormalization
ドロップアウト
LeakyReLU
Conv2D # (なし、32、32、32)
BatchNormalization
ドロップアウト
LeakyReLU
Conv2D # (なし、16、16、64)
BatchNormalization
ドロップアウト
LeakyReLU
Conv2D # (なし、8、8、128)
BatchNormalization
ドロップアウト
LeakyReLU
Conv2D # (なし、4、4、256)
BatchNormalization
ドロップアウト
LeakyReLU
Conv2D # (なし、2、2、512)
BatchNormalization
ドロップアウト
LeakyReLU
フラット化
ドロップアウト
高密度
私が最後に試したハイパーパラメータは以下のとおりで、トレーニング画像にガウス ノイズを追加することを忘れていませんでした。