問題タブ [generative-adversarial-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.

0 投票する
1 に答える
1167 参照

tensorflow - Generative Adversarial Networks in Keras doesn't work like expected

I'm a beginner in Keras machine learning. I'm Trying to understand the Generative Adversarial Networks (GAN). For this purpose i'm trying to program a simple example. Im generating data With the following function:

Data that is gerated with this fuction looks similar to these examples:

enter image description here Now the aim should be to train a Neural Network to generate similar data. For the GAN we need a Generator Network which i modeled like this:

an a discriminator which looks like this:

the combined model:

I have a function that generates noise (a random array)

And then i'm training the model:

Like you can see i've already tried to train the model for 1. Mio iterations. But the generator outputs data that looks like this afterwards (despite of different inputs):

enter image description here

Definitely not what I wanted. So my question is: Is 1. Mio Iterations not enough, or is there anything wrong in the concept of my program

edit:

That is the function with which i plot my data:

0 投票する
1 に答える
359 参照

python - ランタイム エラー: 入力を取得できないため、GAN の切断されたグラフ

これが私の識別子アーキテクチャです:

ジェネレーターのアーキテクチャは次のとおりです。

そして、これがGANネットワークの作成方法です。

弁別器には 2 つのモデルがあり、形状の画像と形状128x128x3の埋め込みを入力として取得し1x128x3、両方のモデルがマージされます。ジェネレーター モデルは、ノイズを取得して128x128x3画像を生成するだけです。そのcombined = Model(z, valid)ため、次のエラーが表示されます。

これは、ディスクリミネーターが埋め込み入力を見つけることができないという事実によるものだと思いますが、(1,128,3)ノイズがジェネレーターモデルに供給されているのと同じように、 shape のテンソルを供給しています。私が間違っているところを誰か助けてもらえますか?

そして、ここですべてを設定した後、ノイズと埋め込みベクトルをマージして画像を生成する方法と、弁別器が画像とベクトルを取得して偽物を識別する方法を示します。

0 投票する
1 に答える
3014 参照

machine-learning - Gans のジェネレーターの損失関数

私はガンを深く研究し、それをpytorchにも実装しました。今、ガンの背後にあるコア統計を研究してい ます

「損失(G) = - 損失(D)、ジェネレーターのコストをディスクリミネーターのコストの負として定義したことに注意してください。これは、ジェネレーターのコストを評価する明示的な方法がないためです。」

しかし、gan を実装するときは、ジェネレーターの損失を次のように定義します。

元の論文と次のコードのように、ジェネレーターによって生成された画像のディスクリミネーター出力とリアルラベルの間のクロスエントロピー損失 (実装およびテスト済み)

2つの違いと正しいものの違いを教えてください

コードリンク: https://github.com/mabdullahrafique/Gan_with_Pytorch/blob/master/DCGan_mnist.ipynb

ありがとう

0 投票する
1 に答える
1080 参照

python - Tensorflow GAN は、バッチ サイズが 1 の場合にのみ機能します

破損した画像から画像を再構築するために CGAN をトレーニングしています。可変バッチ サイズのすべてのコードを記述したので、可変バッチ サイズでトレーニングすることもできます (エラーなどは発生しません)。バッチ サイズ 1 を使用すると、2 分後に再構築された画像に奇妙なアーティファクトがなくなりました。ただし、ここに私の問題があります。他のバッチサイズでは、さまざまな学習率を試したり、数時間トレーニングしたりしても、非常に奇妙なチェッカーボードのアーティファクトが発生します。

これは、しばらくトレーニングした後、バッチサイズ 2 で再構成された画像です。(これらの奇妙なアーティファクトは、破損したデータにはありませんでした。)

これは、バッチ サイズ 2 でのジェネレーター損失に対する敵対的要素です。

これは、バッチ サイズ 2 でのジェネレーターの損失です。

これは、バッチ サイズ 2 での弁別損失です。

比較のために、バッチ サイズ 1 の場合:

アドロス グロス ドロス

オレンジは列車、青は検証

バッチ サイズが 1 より大きいとすぐに、私のコードはまったく異なることを行うようです。バッチが正しくロードされていることは確かです。私は夢中になっていますか?

私のモデル:

私のトレーニング:

バッチサイズ 1 のデフォルト設定:

あなたが持っているかもしれない洞察に感謝します...