【问题标题】:Error executing pytorch code AttributeError: 'function' object has no attribute 'Variable'执行 pytorch 代码 AttributeError 时出错:“函数”对象没有属性“变量”
【发布时间】:2019-03-21 14:50:54
【问题描述】:

尝试从以下 repo 从 github 运行 pytorch 代码

https://github.com/jalola/improved-wgan-pytorch

错误出现在文件 gan_train.py 中的以下语句

   writer.add_scalar('data/disc_cost', disc_cost, iteration)

报错如下

File "/home/anaconda/new_anaconda_3.5/lib/python3.6/site-packages/tensorboardX/writer.py", line 272, in add_scalar
    self.file_writer.add_summary(scalar(tag, scalar_value), global_step)

  File "/home/anaconda/new_anaconda_3.5/lib/python3.6/site-packages/tensorboardX/summary.py", line 86, in scalar
    scalar = makenp(scalar)

  File "/home/anaconda/new_anaconda_3.5/lib/python3.6/site-packages/tensorboardX/x2num.py", line 15, in makenp
    return pytorch_np(x, modality)

  File "/home/anaconda/new_anaconda_3.5/lib/python3.6/site-packages/tensorboardX/x2num.py", line 24, in pytorch_np
    if isinstance(x, torch.autograd.variable.Variable):
AttributeError: 'function' object has no attribute 'Variable'

任何想法,我对pytorch不是很精通。 tensorboard API 似乎有问题。

非常感谢。

【问题讨论】:

  • 嘿,你解决问题了吗?如果您找到了解决方案,如果您能分享它,那就太好了!

标签: python-3.x pytorch


【解决方案1】:

这似乎是版本问题,行:

torch.autograd.variable.Variable

适用于 PyTorch 0.3.1 但不适用于版本 0.4.0,然后它会引发与您相同的错误。所以我猜你正在使用版本0.4.0

(在版本 0.4.0 中,类 TensorVariable 已合并,因此不再需要变量。)

如果是这样,使用版本0.3.1 可能会解决您的问题。

【讨论】:

    【解决方案2】:

    这是 tensorboardX 版本错误

    您需要将/home/anaconda/new_anaconda_3.5/lib/python3.6/site-packages/tensorboardX/x2num.py 中的torch.autograd.variable.Variable 更改为torch.autograd.Variable .它对我有用。

    更多信息https://github.com/lanpa/tensorboardX/commit/c5189bdb019085841dbfeeb457b1f6682c7dbfbf

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 2014-09-14
      • 2021-03-12
      相关资源
      最近更新 更多