第一次深度学习跑模型心得与感想

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使用不当或者代码中的错误导致的。

以下是一些可能的解决方案:

  1. 检查CUDA和PyTorch版本:确保你的CUDA版本与PyTorch版本兼容。可以通过查看PyTorch文档来确认。

  2. 更新CUDA和PyTorch:有时候,错误是由于库之间的版本不匹配引起的。尝试更新CUDA和PyTorch到最新版本。

  3. 重启环境或计算机:有时候,简单的重启你的Python环境或者整个计算机可以解决这类问题。

  4. 检查GPU状态:确保GPU状态正常,没有过热或其他问题。你可以使用nvidia-smi命令来检查GPU的状态。

  5. 限制使用的GPU数量:如果你的机器有多个GPU,尝试只使用一个GPU。

  6. 简化模型或数据:如果可能,尝试使用更小的模型或更少的数据进行训练,看看是否能避免这个错误。

  7. 查看错误日志:有时候,错误日志会提供更详细的信息。查看日志文件以获取更多线索。

请尝试上述方法中的一个或多个,以解决CUDA运行时错误的问题。记得在修改代码或环境后重新运行程序。

通过检查GPU与CUDA的版本那些杂乱的东西,发现并没有问题,该项目采用python3.7 pytorch1.1 于是我在autoDL 平台也选用了该环境,出现了该问题。师傅指出完全有可能是版本太低,让我选用更高版本的pytorch,最终成功解决问题

两日收获颇丰,单纯分享自己的学习感悟,如有侵权,联系我做删除

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值