美文网首页
在GPU上使用Tensorflow出现Cannot assign

在GPU上使用Tensorflow出现Cannot assign

作者: Edwin_dl | 来源:发表于2017-10-22 09:10 被阅读2160次

最近使用GPU跑tensorflow出现了这个问题:Cannot assign a device for operation ' ': Operation was explicitly assigned to /job:ps/task:0/device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/cpu:0 ].大致意思就是我们将程序安排在GPU上跑,但是目前可用的设备仅有CPU!不应该啊,安装的是GPU版本的tensorflow啊,而且也成功的跑了试验程序啊!到底是什么个情况,这时候最好的办法就是去查看显卡显存的使用情况!

在终端输入

nvidia-smi
屏幕截图.png

清楚的发现并没有python3.5的程序在使用!!!
在网上查原因应该时安装CUDA时的环境变量没配置好(还好之前没去瞎折腾重装CUDA),于是又重新配了一下环境变量:

sudo gedit /etc/profile在最后一行添加:


export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/:/usr/local/cuda/lib64:$LD_LIBRARY_PATH

export PATH=/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:$PATH

保存后退出,并更新配置

sudo ldconfig

这时候出现libEGL.so.1 is not a symbolic link的问题......

说明我们的软链接出问题了,需要重新建立连接!!!解决办法:


sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org

sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org

因为我本机的版本是libEGL.so.375.66


sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.66 /usr/lib/nvidia-375/libEGL.so.1

sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.66 /usr/lib32/nvidia-375/libEGL.so.1

然后重启一下,大功告成!!!

相关文章

网友评论

      本文标题:在GPU上使用Tensorflow出现Cannot assign

      本文链接:https://www.haomeiwen.com/subject/skkguxtx.html