复现问题记录 | StoryGAN-pororo

复现问题记录

比较简单的问题省略,主要记录几个不好解决的问题。
StoryGAN论文https://arxiv.org/abs/1812.02784
StoryGAN代码https://github.com/yitong91/StoryGAN
pororo-SV数据集和对应代码要找作者要。

1.数据并行问题

直接运行会出现如下报错

Traceback (most recent call last):
  File "main_pororo.py", line 109, in <module>
    algo.train(imageloader, storyloader, testloader, cfg.STAGE)
  File "/mnt/data3/yc/StoryGAN-pororo/code/trainer.py", line 246, in train
    nn.parallel.data_parallel(netG.sample_videos, st_inputs, self.gpus)
  File "/home/user/anaconda3/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 207, in data_parallel
    for t in chain(module.parameters(), module.buffers()):
AttributeError: 'function' object has no attribute 'parameters'

一开始只训练StageI图像生成器时,直接将并行部分注释掉只用一个GPU跑。(代码几处并行部分改法类似)

_, st_fake, m_mu, m_logvar, c_mu, c_logvar = netG.sample_videos(st_motion_input, st_content_input)
_, im_fake, im_mu, im_logvar, cim_mu, cim_logvar = netG.sample_images(im_motion_input, im_content_input)

# 并行
# st_inputs = (st_motion_input, st_content_input)
# lr_st_fake, st_fake, m_mu, m_logvar, c_mu, c_logvar = \
# nn.parallel.data_parallel(netG.sample_videos, st_inputs, self.gpus)
# im_inputs = (im_motion_input, im_content_input)
# lr_im_fake, im_fake, im_mu, im_logvar, cim_mu, cim_logvar = \
# nn.parallel.data_parallel(netG.sample_images, im_inputs, self.gpus)

后续训练StageII发现实验室的GPU显存不够用,看来没法回避这个问题了,刚好也不太懂数据并行顺道研究一下。
这个bug会出现的原因是因为对netG中声明的一个函数sample_videos进行并行操作,但nn.parallel.data_parallel是为netG这样的modal设计的,sample_videos根本没有封装parameter()的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值