导入TextClassifier接口报错ModuleNotFoundError: No module named ‘mindnlp.models’

1 系统环境

  • 硬件环境(Ascend/GPU/CPU): Ascend/GPU/CPU MindSpor
  • 版本: mindformer =2.1.0
  • 执行模式(PyNative/ Graph): 不限
  • Python版本: Python=3.10
  • 操作系统平台: Ubuntu18.04

2 报错信息

2.1 脚本信息

使用如下语法导入TextClassifier报错:

from mindmlp.models import TextClassifier

2.2 报错信息

[mindspore@cloud-0bf420d6-eff4-4075-bf73-1895048a5a38-658f89747c-nwh81 work]$ python k.py
Traceback (most recent call last):
File “/home/mindspore/work/k.py”, line 3, in
from mindnlp.models import TextClassifier
ModuleNotFoundError: No module named ‘mindnlp.models’
[mindspore@cloud-0bf420d6-eff4-4075-bf73-1895048a5a38-658f89747c-nwh81 work]$ pip list | grep mindnlp
mindnlp 0.4.1

3 根因分析

0.1.1 版本还存在 mindnlp.models
https://github.com/mindspore-lab/mindnlp/tree/v0.1.1/mindnlp/models
0.2.0 版本就去掉了
https://github.com/mindspore-lab/mindnlp/blob/v0.2.0/mindnlp/models.py
logger.warning(‘mindnlp.models will be deprecated, please use mindspore.transformers instead.’)

4 解决方案

使用新版本的内置模型来做文本分类,例如Bert

from mindnlp.transformers import BertForSequenceClassification, BertModel

# set bert config and define parameters for training
model = BertForSequenceClassification.from_pretrained('bert-base-chinese', num_labels=2)