最近使用GPU跑tensorflow出現(xiàn)了這個(gè)問題: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上跑,但是目前可用的設(shè)備僅有CPU!不應(yīng)該啊,安裝的是GPU版本的tensorflow啊,而且也成功的跑了試驗(yàn)程序?。〉降资鞘裁磦€(gè)情況,這時(shí)候最好的辦法就是去查看顯卡顯存的使用情況!
在終端輸入
nvidia-smi

屏幕截圖.png
清楚的發(fā)現(xiàn)并沒有python3.5的程序在使用?。?!
在網(wǎng)上查原因應(yīng)該時(shí)安裝CUDA時(shí)的環(huán)境變量沒配置好(還好之前沒去瞎折騰重裝CUDA),于是又重新配了一下環(huán)境變量:
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
這時(shí)候出現(xiàn)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
因?yàn)槲冶緳C(jī)的版本是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
然后重啟一下,大功告成?。?!