提问者:小点点

带有Keras误差的Tensorflow gpu


使用Ubuntu 16.04, PyCharm

我使用以下链接使用python 3.5安装tensorflow gpu:http://www.python36.com/install-tensorflow141-gpu/

Tensorflow安装良好。它使用测试代码运行。然后我安装了Keras,从这里运行代码:https://github.com/fchollet/deep-learning-with-python-notebooks/blob/master/5.1-introduction-to-convnets.ipynb

我得到了以下错误:

2018-02-23 11:19:13.457201:I tensorflow/stream_executor/cuda/cuda_gpu executor。cc:892]从SysFS成功读取的NUMA节点的值为负值(-1),但必须至少有一个NUMA节点,因此返回NUMA节点零

2018-02-23 11:19:13.457535:I tensorflow/core/common_runtime/gpu/gpu_设备。cc:1030]找到了具有以下属性的设备0:名称:GeForce GTX 1060 6GB主要:6次要:1 memoryClockRate(GHz):1.7845 pciBusID:0000:01:00.0 totalMemory:5.93GiB可用内存:5.65GiB

2018-02-23 11:19:13.457551:我TensorFlow/核心/common_runtime/gpu/gpu_device.cc:1120]创建TensorFlow设备(/设备: GPU: 0)-

2018-02-23 11:21:22.130004: E tenstorflow/stream_executor/cuda/cuda_dnn.cc:378]加载运行时CuDNN库: 7005(兼容版本7000),但源代码是用6021(兼容版本6000)编译的。如果使用二进制安装,请升级CuDNN库以匹配。如果从源构建,请确保运行时加载的库与编译配置期间指定的兼容版本相匹配。

2018-02-23 11:21:22.130663:F tensorflow/core/kernels/conv_ops。cc:667]检查失败:流-

Tensorflow cpu与Keras工作正常。我的问题是:

1)按照哪些说明正确安装我的安装用Keras的tensorflow gpu?

2)我能做些什么来消除这些错误?

3) 在所有平台上正确安装tensorflow gpu和Keras时,是否可以遵循任何通用说明?

编辑这里是我创建的一个文件,它展示了如何在Pycharm社区版中使用tensorflow gpu运行Keras。https://github.com/mdkhan48/AgBot2018_VidStream/blob/master/how运行tensorflow gpu。odt


共2个答案

匿名用户

您正尝试安装4个组件:

  1. Cuda
  2. Cudnn
  3. tensorflow
  4. 凯拉斯

它们并不总是同步的,到目前为止,tensorflow支持cuda 9.1,如果您自己编译它(如您发布的指南),则预构建的二进制文件是使用cuda 9.0和cudnn 7编译的。我更喜欢使用它们,所以这是我正在使用的cuda版本。

以下是您如何安装它:

首先,删除现有cuda安装:

sudo apt-get remove --purge nvidia-*

安装ubuntu头文件和cuda 9.0:

sudo apt-get install linux-headers-$(uname -r)
CUDA_REPO_PKG=cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
wget -O /tmp/${CUDA_REPO_PKG} http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/${CUDA_REPO_PKG}
sudo dpkg -i /tmp/${CUDA_REPO_PKG}
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
rm -f /tmp/${CUDA_REPO_PKG}
sudo apt-get update
sudo apt-get install -y cuda-9-0

下载cuDNN v7.0.5库Linux从nvidia网站,导航到下载的文件夹并安装它:

tar -xzvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/* /usr/local/cuda/include/
sudo cp cuda/lib64/* /usr/local/cuda/lib64/

重新启动您的机器,并检查nvidia驱动程序使用:

nvidia-smi

输出应该是这样的:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.30                 Driver Version: 390.30                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 105...  Off  | 00000000:04:00.0  On |                  N/A |
|  0%   33C    P8    N/A / 120W |    310MiB /  4038MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1307      G   /usr/lib/xorg/Xorg                           141MiB |
|    0      2684      G   compiz                                       120MiB |
|    0      4078      G   ...-token=                                    45MiB |
+-----------------------------------------------------------------------------+

创建一个虚拟环境并在其中安装tenstorflow和keras:

sudo apt-get install virtualenv
virtualenv tfenv
source tfenv/bin/activate
pip install tensorflow-gpu
pip install keras

匿名用户

该错误是由于cudnn的错误版本造成的。我认为您错过了教程中的一些步骤。此错误加载了运行时CuDNN库:7005(兼容版本7000),但源代码是使用6021(兼容版本6000)编译的。如果使用二进制安装,请升级CuDNN库以匹配。如果从源代码生成,请确保运行时加载的库与编译配置期间指定的兼容版本匹配解释了问题所在。

我的建议是安装cudnn7.0。5如果已安装cuda 9.1,请从源代码处重新编译并仔细阅读说明;如果已安装cuda 9.0,请使用pip3安装tensorflow gpu

我还可以证实keras与CUDA9.1一起工作,并成功地测试了您在上面尝试和链接的代码。