运行连续图像生成代码时 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[]]

关于代码图像

我现在不知道如何解决这个问题。不知道是修改代码还是受流程影响。有人可以告诉我我该怎么做吗?

原文链接:https://stackoverflow.com//questions/71506444/an-error-with-omegaconf-when-running-continuous-image-generation-code

回复

我来回复
  • Omry Yadan的头像
    Omry Yadan 评论

    OmegaConf 不支持将非原始类型分配给配置。这在几年前已经改变。有可能作者使用了一个非常旧的 OmegaConf 版本,它确实允许这种分配,但根据他的 environment.yaml 文件,他是使用不支持它的 2.0.6。

    有关此问题,请联系代码作者。

    2年前 0条评论