ImportError:无法从“变压器”导入名称“AutoModelWithLMHead”

Posted

技术标签:

【中文标题】ImportError:无法从“变压器”导入名称“AutoModelWithLMHead”【英文标题】:ImportError: cannot import name 'AutoModelWithLMHead' from 'transformers' 【发布时间】:2020-11-18 07:34:30 【问题描述】:

这实际上是我要运行的所有代码:

from transformers import AutoModelWithLMHead, AutoTokenizer
import torch

tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-small")
model = AutoModelWithLMHead.from_pretrained("microsoft/DialoGPT-small")

我收到此错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-14-aad2e7a08a74> in <module>
----> 1 from transformers import AutoModelWithLMHead, AutoTokenizer
      2 import torch
      3 
      4 tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-small")
      5 model = AutoModelWithLMHead.from_pretrained("microsoft/DialoGPT-small")

ImportError: cannot import name 'AutoModelWithLMHead' from 'transformers' (c:\python38\lib\site-packages\transformers\__init__.py)

我该怎么办?

【问题讨论】:

您是否尝试过从转换器库中导入其他内容? 你用的是什么版本的转换器? @cronoik 我用的是最新的。变压器-3.0.2 @A.T.B 导入 AutoTokenizer 工作正常... 我无法重现这个。请运行import transformerstransformers.__version__ 以确保您确实在使用3.0.2。你是怎么安装的? 【参考方案1】:

我解决了!显然 AutoModelWithLMHead 在我的版本中被删除了。

现在您需要将AutoModelForCausalLM 用于因果语言模型,AutoModelForMaskedLM 用于掩码语言模型,AutoModelForSeq2SeqLM 用于编码器-解码器模型。

所以在我的例子中,代码如下所示:

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-small")
model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-small")

【讨论】:

以上是关于ImportError:无法从“变压器”导入名称“AutoModelWithLMHead”的主要内容,如果未能解决你的问题,请参考以下文章

无法从“变压器”导入名称“TFBertForQuestionAnswering”

ImportError:无法从“flask”导入名称“request”

ImportError:无法从“类型”导入名称“IntType”

python aiorpc:“ImportError:无法从'aiorpc.server'导入名称'RPCServer'”

ImportError:无法导入名称“AFAVSignature”

ImportError:无法从“matplotlib.mlab”导入名称“PCA”