【问题标题】:AttributeError: 'dict' object has no attribute 'to'AttributeError:“dict”对象没有属性“to”
【发布时间】:2021-04-01 15:17:33
【问题描述】:

我使用了一个使用 BERT 对评论进行分类的示例,在 link 中进行了描述。该代码是为使用 CPU 而编写的,它运行良好,但运行缓慢。在 Colab Google 中,使用多语言模型,一个 epoch 对我来说被认为是 4 小时。如果我在代码中的任何地方都用 CUDA 替换 CPU,则会出现您遇到的错误。我遵循了link 中给出的指导方针,但随后出现了另一个错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-0b35a5f74768> in <module>()
    268                   'labels': batch[2],
    269                   }
--> 270         inputs.to(device)
    271         outputs = model(**inputs)
    272 

AttributeError: 'dict' object has no attribute 'to'

【问题讨论】:

    标签: bert-language-model


    【解决方案1】:

    首先,您不需要在代码中的任何地方都用 CUDA 替换 CPU。 您应该将以下内容添加到从中导入库的单元格中

    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

    通过打印设备对象,你可以看到google colab分配给你使用的gpu。

    关于您的问题,我认为您只需提供与预期键相对应的值,而不是提供字典本身。

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 2018-09-02
      • 2021-01-30
      • 2020-09-11
      • 2021-06-07
      • 2021-12-28
      • 2019-03-31
      • 2020-11-22
      • 2023-03-17
      相关资源
      最近更新 更多