A100 GPU环境下PyTorch、TorchText、TorchData适配安装求助
解决PyTorch CUDA兼容性及GloVe词向量加载问题
一、修复A100与PyTorch的CUDA兼容性问题
你的报错根源是A100的CUDA算力为sm_80,而当前torch==1.12.0+cu102依赖的CUDA 10.2不支持该算力,必须升级到支持CUDA 11.x的PyTorch版本。
正确安装命令(无root权限)
选择PyTorch 1.13.1+cu117(稳定且兼容sm_80),同时安装匹配版本的TorchText和TorchData:
pip install --user torch==1.13.1+cu117 torchtext==0.14.1 torchdata==0.5.1 -f https://download.pytorch.org/whl/cu117
- 说明:
--user确保安装到用户目录(无需root),-f指定PyTorch官方CUDA镜像源,避免pip找不到带CUDA后缀的版本。
验证安装
运行以下代码确认CUDA正常工作:
import torch print(torch.cuda.is_available()) # 应输出True print(torch.cuda.get_device_capability()) # 应输出(8, 0)
二、替代TorchText,直接加载本地GloVe文件
如果不想调整版本,直接用以下代码读取本地的glove.twitter.27B.100d.txt,功能和TorchText的GloVe类完全一致:
import torch import numpy as np def load_glove_local(file_path): word_vec_dict = {} with open(file_path, 'r', encoding='utf-8') as f: for line in f: tokens = line.strip().split() word = tokens[0] vec = np.array(tokens[1:], dtype=np.float32) word_vec_dict[word] = vec # 可选:生成词汇表和张量,方便模型集成 vocab = list(word_vec_dict.keys()) vec_tensor = torch.tensor([word_vec_dict[w] for w in vocab]) return word_vec_dict, vocab, vec_tensor # 使用示例 glove_file = "/path/to/your/glove.twitter.27B.100d.txt" word_to_vec, vocab, glove_tensor = load_glove_local(glove_file) # 获取单个词的向量 print(word_to_vec.get("example"))
内容的提问来源于stack exchange,提问作者postnubilaphoebus
相关产品推荐
相关产品推荐

