在服务器上跑gpu版本tensorflow

在服务器上跑gpu版本tensorflow

  一直天真的以为学校服务器上面有gpu就可以自动的照着gpu版本的跑了,但是每次发现输出信息中的device都显示是cpu,虽然速度是比我的电脑快,但batchsize=8跑个6000张的图像一轮就要2小时,感觉不大对劲。后来一查,发现可用设备里面压根没有gpu啊??
  首先看cuda版本的,一定要装匹配版本的gpu:借鉴了此篇

cat /usr/local/cuda/version.txt

  注意,对于服务器上有多个cuda版本要选你要的cuda的所在路径。比如,服务器上有cuda10.0、cuda9.0、cuda8.0,若选了10.0那上面的代码就是:

cat /usr/local/cuda-10.0/version.txt

  出来结果如下:
在这里插入图片描述
  然后再看看CUDNN 版本:(以10举例)

cat /usr/local/cuda-10.0/include/cudnn.h | grep CUDNN_MAJOR -A 2

  结果:
在这里插入图片描述

  因为自己下的不是gpu版本的tensorflow,最终改了好几次选了tensorflow的1.9.0版本的。主要是因为服务器上有cuda8、9、10,然后10的貌似不知道为啥用不了报错出现:
UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
  然后就借鉴了这篇文章,试过了同样的方法弄10,但是试了几个版本都不行,所以选的9。(虽然上例是10的,9的类似即可)

  光安个匹配的gpu版本并不行,会报错如下(这是10的,因为先前安装的是10):
在这里插入图片描述

  查了半天都没结果,因为下载的tensorflow_gpu是直接在清华镜像下的,不是那种自己编译的,不知道到底哪里有问题。看是文件缺失,但是确实服务器上有,后来怀疑是环境变量没有加载对应的cuda路径,于是输入:(借鉴了此篇

vim ~/.bashrc

  稍稍解释一下,查了一下.bashrc,这个是用户的环境配置文件,由于前面有.所以在home下并不可见,然后用vim打开此文件,添加代码如下:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

  注意,这里和前面多版本一样,如果是多个cuda那个路径,那么在所有出现…local/cuda/…就改成自己选的cuda的路径,比如我选的9那就是:…local/cuda-9.0/…。

  不要以为这样添加进去就万事大吉,千万记得要激活,不然它还是会显示上面的错误找不到那些动态库(参见),即输入:

source ~/.bashrc

  此时,进入python,输入:(参见

import tensorflow as tf
tf.test.gpu_device_name()

  然后就不会报上述的错误:
在这里插入图片描述
  出现successful …说明就没啥问题了。用个简单的例子可以测一下,懒得动可以用这个。输出信息里面device显示的是gpu就成功了。但是如果跑大型代码用了卷积的话,会出现版本兼容问题,这个看前面说的UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.那一段的链接,改个版本就好了。

  如果要指定某台gpu跑,可以借鉴:这篇文章

  在跑的时候还出了个问题,报错给我:

ResourceExhaustedError (see above for traceback): OOM when allocating tensor

  解决方法可以参见这篇文章,一个可能是因为没有限制gpu的资源(或者选的太大,分配不了),另一个可能就是比如你后面有消耗资源的进程,关了就好。
  不得不说gpu很香,batchsize=8的2小时训练了快100轮(5000+张图片),如果还是速度慢的话得查一下,很可能用的不是gpu。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值