美文网首页
Tensorflow不能使用GPU

Tensorflow不能使用GPU

作者: 菜鸟瞎编 | 来源:发表于2019-12-08 22:03 被阅读0次

    跑tensorflow代码训练模型的时候发现tensorflow把参数copy进了GPU却仍然在CPU上训练,现象就是用nvidia-smi查出的GPU使用情况中 Memory-Usage不为0,而Volatile GPU-Util 为0。正常情况下应该两个都不为0,下图是正常情况:

    image.png

    查看输出log发现是tensorflow加载一些CUDA10.0的库失败了,安装的CUDA并不是10.0,说明tensorflow和CUDA版本不兼容。更换tensorflow版本或者CUDA版本即可。
    奇怪的现象是,更换完之后再跑模型仍然是不能使用GPU。
    偶然发现,如果在xshell中登录ssh运行代码就会在GPU上训练,执行

    import tensorflow as tf
    tf.test_is_gpu_available()
    

    返回True;
    如果在vscode-remote中打开终端运行代码就不会在GPU上训练,会报错加载CUDA的一些库失败。执行tf.test_is_gpu_available()返回False。
    分别在xshell下和vscode-remote Terminal中查看 LD_LIBRARY_PATH环境变量,发现二者不一致。vscode-remote中的环境变量少了CUDA库的路径。
    网上查阅到这篇博客ssh连接远程主机执行脚本的环境变量问题
    从中了解到vscode-remote 中的Terminal 属于 non login 模式。但通过实验可以发现,vscode-remote Terminal是会加载 ~/.bashrc中的环境变量的,似乎是vscode做了额外的操作或者是bash版本的缘故。
    总之,如果在vscode-remote Terminal运行代码,要注意环境变量是否和xshell ssh Terminal下的一致。

    相关文章

      网友评论

          本文标题:Tensorflow不能使用GPU

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