美文网首页
在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