python - TensorFlow 1.0 在 Windows 上看不到 GPU(但 Theano 可以)

标签 python windows tensorflow gpu keras

我在 Windows 上安装了 Keras 和 Theano(通过遵循此 tutorial)。现在我尝试将后端切换到 Tensorflow效果很好。

我唯一的问题是 Tensorflow does not detect my GPU ,而 Theano 则相反:

from tensorflow.python.client import device_lib
def get_available_gpus():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']

没有结果,但是当使用 Theano 后端运行时,它运行得很好:

C:\Programming\Anaconda3\python.exe D:/cnn_classify_cifar10.py 
Using Theano backend.
DEBUG: nvcc STDOUT nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
mod.cu
    Creating library C:/Users/Alex/AppData/Local/Theano/compiledir_Windows-10-10.0.14393-SP0-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-3.5.2-64/tmpgsy496fe/m91973e5c136ea49268a916ff971b7377.lib and object C:/Users/Alex/AppData/Local/Theano/compiledir_Windows-10-10.0.14393-SP0-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-3.5.2-64/tmpgsy496fe/m91973e5c136ea49268a916ff971b7377.exp

Using gpu device 0: GeForce GTX 770 (CNMeM is enabled with initial size: 80.0% of memory, cuDNN 5005)

显然缺少一些配置,但我不知道是什么。为了让 Theano 正确运行,我需要一个名为 ~/.theanorc 的文件,其中包含以下内容:

[global]
device = gpu
floatX = float32

[cuda]
root = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

[nvcc]
flags=-LC:C:\Programming\WinPython-64bit-3.5.2.2\python-3.5.2.amd64\libs

也许缺少类似的东西或者我可能需要 add environment variables like for Theano? .可能 related question在 Linux 上(?)。

完整的安装日志(包括一个奇怪的异常)可以在这个 Gist 中找到。 .

有什么想法,如何使 GPU 对 Tensorflow 可见?

最佳答案

在同一台机器上同时安装 tensorflow 和 tensorflow-gpu 目前可能会出现问题。

为版本 1.0 安装 tensorflow(仅适用于 cpu)或 tensorflow-gpu(仅适用于 gpu)

关于python - TensorFlow 1.0 在 Windows 上看不到 GPU(但 Theano 可以),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473052/

相关文章:

c# - 如何让 C# 中的进程(而不是线程)同步文件系统访问

python - 将纪元时间截断为小时/天的开始

python - 使用 select() 监听 tcp 和 udp 消息

c# - 如何将行插入到 Excel 工作表内的表对象?

python - 在 Tensorflow 中检索 LSTM 序列的最后一个值

tensorflow - 无法使用 get_tensor_by_name 恢复 Dropout

python - 我们可以手动更改训练模型的内核值吗?

python - 打印指定范围内的列表Python

python - python 中的简单 TCP 服务器

node.js - 为什么 Node 在 Windows 上的运行速度比在 Macos 上慢?