概述
复现问题记录
- 1.数据并行问题
比较简单的问题省略,主要记录几个不好解决的问题。
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()的方法。
最后
以上就是野性石头为你收集整理的复现问题记录 | StoryGAN-pororo的全部内容,希望文章能够帮你解决复现问题记录 | StoryGAN-pororo所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复