深度学习安装包运行时崩溃解决

现在发现一个问题,就是安装深度学习包的时候,其实你只要是conda install或者pip install,大多数包都是能装上的,装不上你后续继续调整安装都行。

但是安装上并不是就完事,因为深度学习特别是pytorch或者numpy库,他们底层是C或者C++如果出现了内存错误,极易导致运行时崩溃,甚至导致结果错误。毕竟指针是个不安全的东西。

错误:windows因为内存问题自动杀掉进程

安装的时候要注意:

python 复制代码
conda deactivate
conda remove -n test --all
# 全清:索引缓存+旧安装包压缩包+残留破损包、临时文件
conda clean --all -y
pip cache purge

conda create -n test python=3.11
conda activate test

安装包的时候要优先安装涉及C或C++的库,而且底层涉及C++和C的库一定要用conda装,这样依赖冲突概率较低

python 复制代码
# 1、GPU框架(官方源,不加forge)
conda install pytorch torchvision pytorch-cuda=11.8 -c pytorch -c nvidia

# 2、数值底层(必加forge)
conda install pandas numpy scipy pyarrow numba -c conda-forge

楼主研究强化学习,直接就安装stable-baseline3,因为安装它直接就会顺带安装了pytorch和numpy这些

python 复制代码
conda install stable-baselines3

因为有很多不常用包conda不一定有必须pip装,但是pip装的时候又会带上别的依赖,所以conda必须是装,装完再pip装别的包,--no-deps的目的是不安装除spicy之外的别的包,防止污染环境。别的同理

python 复制代码
#pip包一定要加 --no-deps
pip install --no-deps aaa

#conda装也要--no-update-deps,因为怕污染前面装的pytorch或者numpy环境,但后续装小包建议用pip
conda install aaa conda-forge --no-update-deps

而且像是numpy会有两个版本,一个是MKL,另一个是OpenBLAS,MKL版本会在windows遇到奇葩问题。就是如果装了MKL版本,会线程死锁,直接崩。

python 复制代码
import numpy as np
# 纯内存无IO测试,能跑=磁盘/保存代码问题,崩=数据/线程问题
x = np.linspace(0,10,10000)
print(x)
y = 2*x**2 + 3*x + np.random.randn(10000)
coef = np.polyfit(x,y,2)
print("拟合系数:",coef)

输出:
[0.         0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
 0.66666667 0.77777778 0.88888889 1.        ]

MKL版本的numpy并没有输出拟合系数,因为线程死锁卡死了,linux则不会

python 复制代码
import numpy as np
print(np.__config__.show())

日志输出看openblas configuration": "unknown",如果是unknown则是因为numpy是MKL版本。

坑2

如果想深度学习长期后台运行,则需要电源设置,睡眠改为从不

更高级电源设置,

超级精华

如果当你使用conda混装,还是会出现各种运行时崩溃问题。不解的时候,我建议,全部改为在conda环境中,使用pip安装。

因为conda很多包默认就是mkl模式,所以会跟pip下安装的OpenBLAS包死锁,安装的时候发现不了问题,但是运行时,不知何时就会崩溃。

当还是运行时崩溃,那就全部包pip装。

pip安装大包pip install stable-baseline3,这个包就会补充很多深度学习的依赖

pip通过--no-deps安装小包,防止替换之前大包安装适配好的numpy那些版本,除了大包指令,不加--no-deps,小包指令全部要加,主要为了防止覆盖安装。

以上所说大包,就是你安装的东西自带了很多依赖,他们一起装,毕竟经过验证,会稳定很多

注意:如果出现C相关错误,打开你的conda环境,看是否有vcruntime140.dll和msvc140.dll,这两个包最容易冲突,如果冲突了,请自行查找将其备注加上--backup--nouse,就是不使用它了

相关推荐
Deepoch1 小时前
Deepoc VLA开发板:基于边缘语义计算的除草机器人决策系统
人工智能·机器人·开发板·具身模型·deepoc·除草机器人
voidmort1 小时前
12. 为什么评估(Evals)比训练更重要
人工智能·深度学习·机器学习
易舟云财务软件1 小时前
财务 AI Python 实战:从自动化报表到智能风控的应用场景
人工智能·python·自动化
武雄(小星Ai)1 小时前
一个模型干五件事:拆解 NVIDIA Cosmos 3 的物理 AI 全模态架构
人工智能·python·agent
AIkk861 小时前
班级群学习资料分享指南:工具推荐与实践
大数据·人工智能·html
兆。1 小时前
简历高光_Agent_RAG项目描述
人工智能·langchain
Upsy-Daisy1 小时前
Hermes Agent 学习笔记 01:一个会记忆、会学习、能长期运行的 AI Agent
人工智能·笔记·学习
小雨下雨的雨1 小时前
五子棋AI在鸿蒙PC Electron上的实现的原理与实践
人工智能·游戏·华为·electron·harmonyos·鸿蒙
AI科技星1 小时前
基于奇合数边界的离散解析数论与双螺旋宇大统一体系(中英文双语纯净终稿)
人工智能·线性代数·架构·概率论·学习方法