GAN网络走过的坑

所用语言:PyTorch,python3.6

问题

1、解决方案引用[1]

复现DCGAN代码时出现ERROR如下:
Trying to backward through the graph a second time, but the buffers have already been freed. Specify retain_graph=True when calling backward the first time.

后在所有的loss中添加retain_graph=True,解决了该问题。
loss_d.backward(retain_graph=True)
但伴随着出现了如下问题
out of memory
在gen_data后加detach(),删除上面添加的retain_graph=True,解决了上述所有问题

d_fake = discriminator(gen_data.detach())

另:[1]中还具体介绍了GAN先G再D,与先D再G的不同

2、所有参考代码

CDCGAN

参考文献

[1] Pytorch: detach 和 retain_graph

猜你喜欢

转载自blog.csdn.net/duanmuji/article/details/84722030