Pytorch训练过程中出现RuntimeError: falseINTERNAL ASSERT FAILED... Couldn‘t open shared file mapping...

这篇具有很好参考价值的文章主要介绍了Pytorch训练过程中出现RuntimeError: falseINTERNAL ASSERT FAILED... Couldn‘t open shared file mapping...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一句话:换成pytorch1.8。

一、问题描述

今天跑一个开源的模型跑到第9个epoch时报错,如下:

RuntimeError: falseINTERNAL ASSERT FAILED at "..\\aten\\src\\ATen\\MapAllocator.cpp":135, 
please report a bug to PyTorch.
Couldn't open shared file mapping: <000002043F0A2562>, error code: <1455>

二、寻找解决方案

遂搜索,同类问题比较少,有一个博客讲到是显卡性能问题。于是我尝试大幅降低batch_size和works,又跑了一遍,这次第3个epoch就报了同样的错误(我跑一个epoch要一小时)。
这时我就奇怪了,降低了对配置的要求(顺便提一下我用的3050Ti),报错来的更快了,这怎么解释?

后来我又到PyTorch的github主页上看有没有人提交过相似的issue,确实有一个:https://github.com/pytorch/pytorch/issues/67864,讨论的时间比较久。
原来这个问题一般在pytorch1.10版本中出现(同时在更高的版本中不保证不出现),如果将版本回滚到1.8,就不会出现。由于这个问题的出现太随机了,没有规律可循,这帮人一直没有能够得到一个稳定的复现,所以不好修。

因此现阶段的一个可行方案就是将pytorch的版本回到1.8。

三、解决问题

这里我记录了我的解决过程,其实就是安装个pytorch1.8。
(1)通过conda创建一个新的环境,我使用了python3.6

conda activate base        #一定要先回到base环境下
conda create --name [你的环境名] python=3.6
conda activate  [你的环境名]

(2)【非必要】由于在包略多的环境中conda的索引时间太长了,体验极差,solving environment要转个一小时,我推荐使用mamba替换conda

conda install mamba

安装成功后可以用mamba替换conda,比如更新conda时:

mamba update conda     

(3)【可能遇到】我install中出现PackagesNotFoundError问题,参考了https://blog.csdn.net/weixin_45552562/article/details/109668589 后解决

(4)安装pytorch
首先在pytorch官网中寻找pytorch1.8的安装命令。在我这个时间点1.8的连接还挂在首页作为一个长期维护版本,之后可能需要在历史版本中找到1.8。
Pytorch训练过程中出现RuntimeError: falseINTERNAL ASSERT FAILED... Couldn‘t open shared file mapping...

注意要安装GPU版本以及注意cuda版本的匹配。这里有一个小问题,就是通过nvidia-smi和nvcc -v查到的cuda版本可能不一样,当时安装的时候我还没注意过这个问题,具体见:https://blog.csdn.net/sophicchen/article/details/120782209。当时我在nvidia-smi中查到的cuda版本为11.6,而pytorch1.8没有匹配cuda11.6,只有10.2和11.1,于是我只能装11.1的版本试试(后来证明可用)。我使用如下命令装pytorch:

mamba install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch-lts -c conda-forge

这里我失败了3次,因为我用的宿舍网,网络环境好的话应该一次就可以成功。
(4)验证安装是否成功

conda env list

看到pytorch位列其中,接下来看看pytorch是否能够调用gpu
打开pycharm,随便开一个项目,将项目环境切换到你刚创建的新环境。
Pytorch训练过程中出现RuntimeError: falseINTERNAL ASSERT FAILED... Couldn‘t open shared file mapping...
有可能pycharm识别不到你刚创建的环境,这时在解释器设置中手动添加相应的python.exe即可。
切换环境后,在pycharm下方的控制台中输入

import torch     #如果这里有报错,下方有解决方案
import torchvision
torch.cuda.is_available()

得到Ture即为成功,也可以用

torch.cuda.get_device_name(0)

查看显卡类型。
(5)【可能遇到】import torch报错

上面提到有可能在import torch时报错,报错信息如下

ValueError: module functions cannot set METH_CLASS or METH_STATIC

这是python3.6版本中的一个bug,具体见https://github.com/pytorch/pytorch/issues/2731
只要在终端(注意要在你刚创建的环境下)中

pip install numpy -I

即可解决问题

四、后续

如果问题没有解决,到时候再更新文章来源地址https://www.toymoban.com/news/detail-420032.html

到了这里,关于Pytorch训练过程中出现RuntimeError: falseINTERNAL ASSERT FAILED... Couldn‘t open shared file mapping...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 当出现RuntimeError:CUDA error:no kernel image is available for execution on the device 问题时候的pytorch安装方法

    当出现一个明显的特征就是出现: RuntimeError:CUDA error:no kernel image is av ailable for execution on the device 这就说明你的显卡太低了 可以到这个路径下C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1extrasdemo_suite, 找到deviceQuenry.exe这个文件拖到cmd命令窗口运行可以看到自身电脑的算力  从

    2024年02月01日
    浏览(50)
  • 已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!!

    已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!! RuntimeError: CUDA error: device-side assert triggered 出现 CUDA error: device-side assert triggered 错误通常是由于 GPU 上的某些计算出现了问题,导致 CUDA 运行时库触发了设备端断言。 下滑查看解决方法 要解

    2024年02月07日
    浏览(32)
  • 解决pytorch训练的过程中内存一直增加的问题

    代码中存在累加loss,但每步的loss没加item() 以上代码会导致内存占用越来越大,解决的方法是:train_l oss[\\\'loss\\\'] += loss.item() 以及 eval_loss[\\\'loss\\\'] += loss.item()。值得注意的是,要复现内存越来越大的问题,模型中需要切换model.train() 和 model.eval(),train_loss以及eval_loss的作用是保存模

    2024年02月04日
    浏览(37)
  • Pytorch运行过程中解决出现内存不足的问题

    利用Transformer模型进行O3浓度的反演 一开始模型是在CPU上面跑的,为了加快速度,我改成了在GPU上跑 方法如下: 1、验证pytorch是否存在GPU版本 在Pycharm命令行输入 我的输出为True,说明pytorch是存在GPU版本的 2、将模型从CPU版本转换到GPU版本 声明使用GPU(指定具体的卡) PS:

    2023年04月16日
    浏览(31)
  • 人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程,本文将介绍如何使用PyTorch搭建ELMo模型,包括ELMo模型的原理、数据样例、模型训练、损失值和准确率的打印以及预测。文章将提供完整的代码实现。 ELMo模型简介 数据

    2024年02月07日
    浏览(44)
  • PyTorch深度学习实战(1)——神经网络与模型训练过程详解

    人工神经网络 ( Artificial Neural Network , ANN ) 是一种监督学习算法,其灵感来自人类大脑的运作方式。类似于人脑中神经元连接和激活的方式,神经网络接受输入,通过某些函数在网络中进行传递,导致某些后续神经元被激活,从而产生输出。函数越复杂,网络对于输入的数据拟

    2024年02月06日
    浏览(32)
  • 人工智能(Pytorch)搭建GRU网络,构造数据实现训练过程与评估

    大家好,我是微学AI,今天给大家介绍一下人工智能(Pytorch)搭建模型3-GRU网络的构建,构造数据实现训练过程与评估,让大家了解整个训练的过程。 GRU(Gated Recurrent Unit,门控循环单元)是一种循环神经网络(RNN)的变体,用于处理序列数据。对于每个时刻,GRU模型都根据当前

    2023年04月09日
    浏览(36)
  • Bug小能手系列(python)_13: RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might

    在运行 Python 代码时出现报错: RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. 注意:报错对应的代码部分与实际出现错误的部分是不同的。具体报错

    2024年02月04日
    浏览(30)
  • pytorch 训练过程内存泄露/显存泄露debug记录:dataloader和dataset导致的泄露

    微调 mask-rcnn 代码,用的是 torchvision.models.detection.maskrcnn_resnet50_fpn 代码,根据该代码的注释,输入应该是: images, targets=None (List[Tensor], Optional[List[Dict[str, Tensor]]]) - Tuple[Dict[str, Tensor], List[Dict[str, Tensor]]] 所以我写的 dataset 是这样的: 大概思路是: 先把所有的标注信息读入内存

    2024年02月14日
    浏览(32)
  • pytorch进阶学习(六):如何对训练好的模型进行优化、验证并且对训练过程进行准确率、损失值等的可视化,新手友好超详细记录

    课程资源:  7、模型验证与训练过程可视化【小学生都会的Pytorch】【提供源码】_哔哩哔哩_bilibili 推荐与上一节笔记搭配食用~: pytorch进阶学习(五):神经网络迁移学习应用的保姆级详细介绍,如何将训练好的模型替换成自己所需模型_好喜欢吃红柚子的博客-CSDN博客 训练

    2023年04月17日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包