我发现作者的PiggybackGAN代码(关于持续学习图像生成)的链接如下:https://github.com/kaushik333/Piggyback-GAN-Pytorch的Github问题有这个问题,但没有人解决。我想在我的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只有一个核心,而不是原始作者的4个GPU。我在源代码中找到了相关的部分,并进行了一些测试,以消除类型不匹配的问题。此外,Omegaconf的版本更改也不能解决我的问题。在右边,layer.unc_filt.detach().cpu()的类型是list[tensor[]]
我现在不知道怎么解决这个问题。我不知道是修改代码还是受此过程的影响。有人能告诉我我该怎么做吗?
发布于 2022-03-17 07:14:34
OmegaConf不支持将非原语类型分配给配置。这种情况几年前就已经改变了。有一种可能是,作者使用了一个非常旧的OmegaConf版本,该版本确实允许此分配,但基于他的environment.yaml文件,他使用的是2.0.6,这并不支持它。
有关此问题,请与代码作者联系。
https://stackoverflow.com/questions/71506444
复制相似问题