2024.7.15-7.16这两天我将Anaconda,pytorch,pycharm进行的环境配置与安装,详细参考B站Python深度学习:安装Anaconda、PyTorch(GPU版)库与PyCharm_哔哩哔哩_bilibili
ps:具体遇到过无法下载汉化包的问题:直接上官网找对应的版本进行下载
这位师傅讲的十分详细透彻手把手带我进行了安装与环境调配,通过Anaconda创建虚拟环境DL可设置各种python版本以及各种软件包的版本。值得一提的是,pytorch需要单独配置,并且有三个模块,直接官网下载下了我4个小时,不过还好能用。
于是我开始了github上的两个项目复现跑模型,在此之前我安装了GIT,是从B站一个评论区白嫖的,很好用网址如下:Git-2.45.2-64-bit(微信公众号:资源炸了).exe - 蓝奏云
通过GitHub - 649453932/Chinese-Text-Classification-Pytorch: 中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,DPCNN,Transformer,基于pytorch,开箱即用。,进行code地址,在C盘创建文件夹,点进文件夹,用git bash 输入 git clone 粘贴该地址,完成项目导入本地,右键open pycharm 进入到pycharm,利用创建好的DL虚拟环境解释器,pip install 软件包,最终点击运行run.py成功跑出。中间很多错误,eg:未明确模型,参数那栏输入--model=TestRNN等
总结:第一个模型上手较快,能在短时间跑出
于是,我开启了第二个项目GitHub - 649453932/Bert-Chinese-Text-Classification-Pytorch: 使用Bert,ERNIE,进行中文文本分类
在这个项目中我遇到问题很多,一一列举如下:
1. 出现了FileNotFoundError,刚开始我以为路径不对,反复检查路径,结果在前面有一个警告:UserWarning: A NumPy version >=1.22.4 and <2.3.0 is required for this version of SciPy (detected version 1.21.5)
from scipy.sparse import csr_matrix, issparse 这个就很有意思了,是我的numpy库的版本太低了,于是我上DL里重新下了一个更高版本的numpy,就没报错了
2. 出现了算力不够显示 CUDA GPU 内存不够的情况,于是我通过一位师傅(他为我制定的学习计划)知道了AUTODL算力平台,于是我买了8块试试水(2块一小时),在B站找了几个视频咋使用这个平台,当我租用一块后,发现我的pycharm只是社区版,不是专业版,没有SSH解释器,于是放弃了使用pycharm,直接使用平台自带的朱庇特,将项目压缩好然后在终端使用指令,操作参考:深度学习服务器AutoDL详细使用教程_哔哩哔哩_bilibili 以及深度学习服务器选择:Google Colab or AutoDL?(附教学视频) - 知乎 (zhihu.com)
最终通过解压,cd 该项目的地址,运行指令即可
3. 困扰我最最最久的一个问题,报错如下:Traceback (most recent call last):
File "run.py", line 37, in <module>
train(config, model, train_iter, dev_iter, test_iter)
File "/root/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch/train_eval.py", line 52, in train
outputs = model(trains)
File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/root/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch/models/bert.py", line 44, in forward
_, pooled = self.bert(context, attention_mask=mask, output_all_encoded_layers=False)
File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/root/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch/pytorch_pretrained/modeling.py", line 733, in forward
output_all_encoded_layers=output_all_encoded_layers)
File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/root/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch/pytorch_pretrained/modeling.py", line 406, in forward
hidden_states = layer_module(hidden_states, attention_mask)
File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/root/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch/pytorch_pretrained/modeling.py", line 391, in forward
attention_output = self.attention(hidden_states, attention_mask)
File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/root/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch/pytorch_pretrained/modeling.py", line 349, in forward
self_output = self.self(input_tensor, attention_mask)
File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/root/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch/pytorch_pretrained/modeling.py", line 309, in forward
attention_scores = torch.matmul(query_layer, key_layer.transpose(-1, -2))
RuntimeError: cublas runtime error : the GPU program failed to execute at /pytorch/aten/src/THC/THCBlas.cu:450
10000it [00:01, 6381.57it/s]-02a64b88f4-9987a370:~/autodl-tmp/Bert-Chinese-Text-Classification-Pytorch#
通过chatgpt,他给我指示如下:
从你提供的错误信息来看,你的PyTorch模型在执行时遇到了CUDA运行时错误,具体是在执行矩阵乘法操作时。这个错误通常是由于CUDA库的问题引起的,可能是因为CUDA驱动程序、库版本不匹配、GPU使用不当或者代码中的错误导致的。
以下是一些可能的解决方案:
-
检查CUDA和PyTorch版本:确保你的CUDA版本与PyTorch版本兼容。可以通过查看PyTorch文档来确认。
-
更新CUDA和PyTorch:有时候,错误是由于库之间的版本不匹配引起的。尝试更新CUDA和PyTorch到最新版本。
-
重启环境或计算机:有时候,简单的重启你的Python环境或者整个计算机可以解决这类问题。
-
检查GPU状态:确保GPU状态正常,没有过热或其他问题。你可以使用
nvidia-smi
命令来检查GPU的状态。 -
限制使用的GPU数量:如果你的机器有多个GPU,尝试只使用一个GPU。
-
简化模型或数据:如果可能,尝试使用更小的模型或更少的数据进行训练,看看是否能避免这个错误。
-
查看错误日志:有时候,错误日志会提供更详细的信息。查看日志文件以获取更多线索。
请尝试上述方法中的一个或多个,以解决CUDA运行时错误的问题。记得在修改代码或环境后重新运行程序。
通过检查GPU与CUDA的版本那些杂乱的东西,发现并没有问题,该项目采用python3.7 pytorch1.1 于是我在autoDL 平台也选用了该环境,出现了该问题。师傅指出完全有可能是版本太低,让我选用更高版本的pytorch,最终成功解决问题
两日收获颇丰,单纯分享自己的学习感悟,如有侵权,联系我做删除