You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的GAN每次运行都输出相同图像且无多样性?附完整代码

每次运行代码时得到的生成图像完全一致,示例如下:
gan output

核心原因

  • 最直接的问题出在预览图保存逻辑:代码在全局作用域仅生成了一次fixed_noise固定噪声向量,训练全程调用save_images时都传入这个固定噪声,生成器权重收敛后,相同输入必然输出相同结果。
  • 若你是每次重新运行整个程序得到的结果都完全一致,大概率是代码开头固定了全局随机种子(如np.random.seed()、深度学习框架的全局随机种子设置),固定种子会让每次程序运行的随机数序列完全相同,生成结果自然不会变化。
  • 极小概率为GAN模式崩溃,但你提到生成图像质量符合预期,该情况可能性极低。

解决方法

  1. 如需每次保存的训练预览图有差异,将训练循环内的保存逻辑修改为每次传入新生成的随机噪声:
    将原代码
save_images(step, fixed_noise, generator)

修改为:

# 每次生成新的随机噪声输入
new_noise = np.random.normal(0, 1, (PREVIEW_ROWS * PREVIEW_COLS, random_dim))
save_images(step, new_noise, generator)
  1. 如每次重新运行程序结果都相同,删除代码中所有固定全局随机种子的语句即可。
  2. 若测试多组不同随机噪声输入生成器仍得到完全相同的输出,可确认为模式崩溃,通过调低学习率、添加标签平滑、改用WGAN-GP等改进训练策略即可解决。

内容的提问来源于stack exchange,提问作者Sinister 3665

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:48:02