在AWS和Tensorflow方面,我是一名新手,并且上周我通过Udacity的机器学习课程学习了CNN。 现在,我需要使用GPU的AWS实例。我启动了带有源代码(CUDA 8,Ubuntu)的深度学习AMI的p2.xlarge实例(这是他们的建议)
但是现在看来,tensorflow根本没有使用GPU。它仍在使用CPU进行培训。我做了一些搜索,发现了这个问题的答案,但似乎都没有。
当我运行Jupyter笔记本时,它仍然使用CPU
如何使它在GPU而不是CPU上运行?
答案 0 :(得分:8)
张量流未检测到GPU的问题可能是由于以下原因之一。
在继续解决该问题之前,我们假设安装的环境是AWS Deep Learning AMI,并且安装了CUDA 8.0和tensorflow版本1.4.1。这个假设来自评论中的讨论。
为解决该问题,我们进行如下操作:
点冻结| grep tensorflow
pip卸载tensorflow
pip install tensorflow-gpu == 1.4.1
pip卸载tensorflow
pip卸载tensorflow-gpu
pip install tensorflow-gpu == 1.4.1
此时,如果正确安装了所有tensorflow依赖项,则tensorflow GPU版本应该可以正常工作。在此阶段(OP遇到的一个常见错误)是缺少cuDNN库,当将tensorflow导入python模块时可能会导致以下错误
ImportError:libcudnn.so.6:无法打开共享对象文件:否这样 文件或目录
可以通过安装正确版本的NVIDIA cuDNN库进行修复。 Tensorflow版本1.4.1取决于cuDNN版本6.0和CUDA 8,因此我们从cuDNN存档页面(Download Link)下载相应的版本。我们必须登录NVIDIA开发人员帐户才能下载文件,因此无法使用wget
或curl
之类的命令行工具下载该文件。一种可能的解决方案是在主机系统上下载文件,然后使用scp
将其复制到AWS上。
一旦复制到AWS,请使用以下命令提取文件:
tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
提取的目录应具有与CUDA工具包安装目录相似的结构。假设CUDA工具包已安装在目录/usr/local/cuda
中,我们可以通过以下方式安装cuDNN:将下载的档案中的文件复制到CUDA Toolkit安装目录的相应文件夹中,然后执行链接更新命令ldconfig
,如下所示:>
cp cuda / include / * / usr / local / cuda / include
cp cuda / lib64 / * / usr / local / cuda / lib64
ldconfig
之后,我们应该能够将tensorflow GPU版本导入到我们的python模块中。
一些注意事项:
pip
替换为pip3
。pip
,cp
和ldconfig
可能需要以sudo
身份运行。