记录一次失败的kera-tensorflow环境更新
下面是错误示范的记录。
起因是keras跑得特别慢,cpu内存拉满,gpu使用率为0
发现:服务器的cuda版本与tensorflow以及tensorflow-gpu不一致
于是:用pip分别更新了tensorflow以及tensorflow-gpu
结果:因为i采用了pip更新,和之前conda好像不和,程序运行会出错import keras出错
血泪教训:keras跑得特别慢,cpu内存拉满,gpu使用率为0,原因竟是服务器的cuda版本与tensorflow以及tensorflow-gpu不一致, 但这里采用了pip更新,导致仍然出错,下面是过程记录
先看这张图,红圈是我在跑的程序,内存给你占满,gpu使用率却为0,在这个3080的卡上跑得还特别慢, 哭死
发现原因:我的tensorflow-gpu版本与这个服务器的cuda版本不一致
这个官方说明的tensorflow与tensorflow-gpu和CUDA的对应版本https://www.tensorflow.org/install/source_windows
那么这张3090卡的cuda版本是11.2, 我的keras环境是从另一个服务器上直接迁移过来的(见我另一个博客),以为拿过来直接用,没想到还有这个坑等着我。
那么接下来就是升级tensorflow和tensorflow-gpu的版本
解决方法:升级tensorflow和tensorflow-gpu的版本
先激活keras环境
建议先
升级tensorflow到对应的版本,我是2.5.0
再升级tensorflow-gpu到对应的版本,我是2.5.0
最后升级keras的版本
conda activate 环境名 # 激活keras环境
pip install --upgrade --ignore-installed tensorflow==2.5.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.5.0
用conda list查看是否升级成功
在pycharm中也可以看到
结果运行:但是运行代码仍然出错,用Pip安装,与之前的conda不合, 叹气!!!
之前都时conda 安装,这里用Pip安装,导致仍然出错。
于是决定删除这个有漏洞的环境,重新安装
https://blog.youkuaiyun.com/uzwuzw/article/details/122962560
下面记录的是我尝试了以下几种方法,来找原因。
- 检查是keras是否用了GPU
import tensorflow as tf
print(tf.__version__)
if tf.test.gpu_device_name():
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
print("Please install GPU version of TF")
可以看到我用了GPU,而且我在代码开头也添加了os.environ[“CUDA_VISIBLE_DEVICES”] = “0”
2. 安装的tensoflow版本不能超过对应tensorflow-gpu版本,实际上我的两个是一致的
4. 调试程序,看看是不是我的数据太大了
不知道为啥那个BN层,一下子内存占用就直逼爆满