Windows11环境下torchcrf安装及导入报错解决方法
解决torchcrf安装及导入报错问题
环境配置
- Windows 11 Pro x64
- PyCharm 2022.2.2(专业版,版本号PY-222.4167.33)
- Python 3.10.7
问题描述
我尝试通过PyCharm安装torchcrf,也执行过pip install torchcrf和pip install pytorch-crf命令,但均未成功,代码中导入torchcrf时报错,请问如何安装torchcrf并解决导入问题?
我的代码如下:
import argparse import yaml import pandas as pd import torch import torchcrf import transformers from data import Dataset from engines import train_fn import warnings warnings.filterwarnings("ignore") parser = argparse.ArgumentParser() parser.add_argument("--data_file", type=str) parser.add_argument("--hyps_file", type=str) args = parser.parse_args() data_file = yaml.load(open(args.data_file), Loader=yaml.FullLoader) hyps_file = yaml.load(open(args.hyps_file), Loader=yaml.FullLoader) train_loader = torch.utils.data.DataLoader( Dataset( df=pd.read_csv(data_file["train_df_path"]), tag_names=data_file["tag_names"], tokenizer=transformers.AutoTokenizer.from_pretrained(hyps_file["encoder"], use_fast=False), ), num_workers=hyps_file["num_workers"], batch_size=hyps_file["batch_size"], shuffle=True, ) val_loader = torch.utils.data.DataLoader( Dataset( df=pd.read_csv(data_file["val_df_path"]), tag_names=data_file["tag_names"], tokenizer=transformers.AutoTokenizer.from_pretrained(hyps_file["encoder"], use_fast=False), ), num_workers=hyps_file["num_workers"], batch_size=hyps_file["batch_size"] * 2, ) loaders = { "train": train_loader, "val": val_loader, } model = transformers.RobertaForTokenClassification.from_pretrained(hyps_file["encoder"], num_labels=data_file["num_tags"]) if hyps_file["use_crf"]: criterion = torchcrf.CRF(num_tags=data_file["num_tags"], batch_first=True) else: criterion = torch.nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=float(hyps_file["lr"])) train_fn( loaders, model, torch.device(hyps_file["device"]), hyps_file["device_ids"], criterion, optimizer, epochs=hyps_file["epochs"], ckp_path="../ckps/{}.pt".format(hyps_file["encoder"].split("/")[-1]), )
解决步骤
1. 确认PyTorch版本兼容性
torchcrf依赖PyTorch,先检查当前PyTorch版本是否符合要求:
python -c "import torch; print(torch.__version__)"
需保证PyTorch版本在1.6.0及以上,若版本过低,执行以下命令升级:
pip install --upgrade torch torchvision torchaudio
2. 修正包安装与导入方式
注意:正确的包名称是pytorch-crf,而torchcrf是已废弃的同名包,需安装前者:
pip install pytorch-crf
同时修改代码中的导入语句,将import torchcrf改为:
from torchcrf import CRF
后续使用时直接调用CRF类即可,比如:
criterion = CRF(num_tags=data_file["num_tags"], batch_first=True)
3. 对齐PyCharm解释器与终端环境
确保PyCharm使用的Python解释器和你执行pip命令的解释器一致:
- 打开PyCharm,进入
File > Settings > Project: [你的项目名] > Python Interpreter - 查看当前解释器路径,与终端中执行
where python(Windows)输出的路径对比 - 若不一致,点击右上角齿轮图标,选择
Add,找到正确的Python解释器路径添加并设为当前项目解释器
4. 源码手动安装(备选方案)
若pip安装失败,可尝试从源码安装:
git clone https://github.com/kmkurn/pytorch-crf.git cd pytorch-crf pip install .
5. 验证安装结果
安装完成后,在终端执行以下代码验证:
from torchcrf import CRF print("torchcrf安装成功")
无报错则说明安装完成,回到PyCharm重新运行代码即可。
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

