运行连续图像生成代码时 Omegaconf 出错
pytorch 293
原文标题 :An error with Omegaconf when running continuous image generation code
我在 Github 上找到了这个作者的 PiggybackGAN 代码(关于持续学习图像生成),链接如下:https://github.com/kaushik333/Piggyback-GAN-Pytorch github issue 有这个问题,但是没有人解决。我想跑这段代码在我的Linux环境下。配置环境和数据集后,出现如下错误:
initialize network with normal
initialize network with normal
initialize network with normal
initialize network with normal
Length of loader is 10
learning rate 0.0002000 -> 0.0002000
save image!
Length of loader is 10
learning rate 0.0002000 -> 0.0002000
save image!
...
...
learning rate 0.0000040 -> 0.0000020
save image!
Length of loader is 10
learning rate 0.0000020 -> 0.0000000
save image!
Traceback (most recent call last):
File "/opt/data/private/Pig/Piggyback-GAN-Pytorch-main/pb_cycleGAN.py", line 231, in main
mp.spawn(train, nprocs=len(opt.gpu_ids), args=(opt,))
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 171, in spawn
while not spawn_context.join():
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 118, in join
raise Exception(msg)
Exception:
-- Process 0 terminated with the following error:
Traceback (most recent call last):
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 19, in _wrap
fn(i, *args)
File "/opt/data/private/Pig/Piggyback-GAN-Pytorch-main/pb_cycleGAN.py", line 88, in train
opt.netG_A_filter_list.append([layer.unc_filt.detach().cpu()])
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/listconfig.py", line 228, in append
self._format_and_raise(key=index, value=item, cause=e)
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/base.py", line 101, in _format_and_raise
type_override=type_override,
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/_utils.py", line 629, in format_and_raise
_raise(ex, cause)
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/_utils.py", line 610, in _raise
raise ex # set end OC_CAUSE=1 for full backtrace
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/listconfig.py", line 224, in append
parent=self,
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/omegaconf.py", line 770, in _maybe_wrap
ref_type=ref_type,
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/omegaconf.py", line 714, in _node_wrap
ref_type=ref_type,
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/listconfig.py", line 68, in __init__
format_and_raise(node=None, key=None, value=None, cause=ex, msg=str(ex))
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/_utils.py", line 629, in format_and_raise
_raise(ex, cause)
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/_utils.py", line 610, in _raise
raise ex # set end OC_CAUSE=1 for full backtrace
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/listconfig.py", line 66, in __init__
self._set_value(value=content)
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/listconfig.py", line 521, in _set_value
self.append(item)
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/listconfig.py", line 228, in append
self._format_and_raise(key=index, value=item, cause=e)
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/base.py", line 101, in _format_and_raise
type_override=type_override,
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/_utils.py", line 694, in format_and_raise
_raise(ex, cause)
File "/root/anaconda3/envs/PiggybackGAN/lib/python3.6/site-packages/omegaconf/_utils.py", line 610, in _raise
raise ex # set end OC_CAUSE=1 for full backtrace
omegaconf.errors.UnsupportedValueType: Value 'Tensor' is not a supported primitive type
full_key: netG_A_filter_list[0][0]
reference_type=Optional[List[Any]]
object_type=list
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
Process finished with exit code 1
值得关注的信息是
File "/opt/data/private/Pig/Piggyback-GAN-Pytorch-main/pb_cycleGAN.py", line 88, in train
opt.netG_A_filter_list.append([layer.unc_filt.detach().cpu()])
omegaconf.errors.UnsupportedValueType: Value 'Tensor' is not a supported primitive type
full_key: netG_A_filter_list[0][0]
reference_type=Optional[List[Any]]
object_type=list
我的GPU只有单核,不是原作者的4Gpus。我在源代码中找到了相关部分,并进行了一些测试以消除类型不匹配的问题。另外,Omegaconf的版本变化也不能解决我的问题。右边[layer.unc_filt.detach().cpu()]的类型是list[tensor[]]
关于代码图像
我现在不知道如何解决这个问题。不知道是修改代码还是受流程影响。有人可以告诉我我该怎么做吗?