私はGANを勉強しています入力した例に基づいて画像を生成するプログラムの例を教えてくれた1つのコースを修了しました。PyTorchで新しい画像を生成する
の例では、ここで見つけることができます:
https://github.com/davidsonmizael/gan
は、だから私は、顔の正面写真のデータセットに基づいて新しい画像を生成するためにそれを使用することにしましたが、私は、任意の成功を持っていないです。上記の例とは異なり、コードはノイズだけを生成し、入力は実際の画像を持ちます。
実際には、コードポイントを正しい方向にして画像から学ぶために何を変えなければならないのか分かりません。私は、この例で提供されているコードで単一の値を変更していませんが、動作しません。
私がこれを理解するのを手伝ってくれれば、正しい方向に向いてくれれば助かります。前もって感謝します。
私の弁別:
class D(nn.Module):
def __init__(self):
super(D, self).__init__()
self.main = nn.Sequential(
nn.Conv2d(3, 64, 4, 2, 1, bias = False),
nn.LeakyReLU(0.2, inplace = True),
nn.Conv2d(64, 128, 4, 2, 1, bias = False),
nn.BatchNorm2d(128),
nn.LeakyReLU(0.2, inplace = True),
nn.Conv2d(128, 256, 4, 2, 1, bias = False),
nn.BatchNorm2d(256),
nn.LeakyReLU(0.2, inplace = True),
nn.Conv2d(256, 512, 4, 2, 1, bias = False),
nn.BatchNorm2d(512),
nn.LeakyReLU(0.2, inplace = True),
nn.Conv2d(512, 1, 4, 1, 0, bias = False),
nn.Sigmoid()
)
def forward(self, input):
return self.main(input).view(-1)
マイジェネレータ:
class G(nn.Module):
def __init__(self):
super(G, self).__init__()
self.main = nn.Sequential(
nn.ConvTranspose2d(100, 512, 4, 1, 0, bias = False),
nn.BatchNorm2d(512),
nn.ReLU(True),
nn.ConvTranspose2d(512, 256, 4, 2, 1, bias = False),
nn.BatchNorm2d(256),
nn.ReLU(True),
nn.ConvTranspose2d(256, 128, 4, 2, 1, bias = False),
nn.BatchNorm2d(128),
nn.ReLU(True),
nn.ConvTranspose2d(128, 64, 4, 2, 1, bias = False),
nn.BatchNorm2d(64),
nn.ReLU(True),
nn.ConvTranspose2d(64, 3, 4, 2, 1, bias = False),
nn.Tanh()
)
def forward(self, input):
return self.main(input)
My機能の重みを開始する:
def weights_init(m):
classname = m.__class__.__name__
if classname.find('Conv') != -1:
m.weight.data.normal_(0.0, 0.02)
elif classname.find('BatchNorm') != -1:
m.weight.data.normal_(1.0, 0.02)
m.bias.data.fill_(0)
完全なコードはここで見ることができます:
https://github.com/davidsonmizael/criminal-gan
あなたのコードとデータを試してみましたが、コードを実行しようとしましたが、gan.pyの80行目には 'target = Variable(torch.ones(input.size()[0])).cuda() ' - 必ずしも使用していなくても(したがってcuda()以外の他の変数)、常にcuda()を呼び出すときのように。 –
意味のあるものを生成し始めるには、おそらく25エポック以上必要ですか? – vasia
@KenSymeええ、クーダを忘れる。私はすべてを終えて追加しましたが、まだテストする機会はありませんでしたが、私はサポートを追加したかったのです。それは問題ではありません:/ – davis