我是靠谱客的博主 野性石头,最近开发中收集的这篇文章主要介绍复现问题记录 | StoryGAN-pororo,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

复现问题记录

    • 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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部