TensorFlow 1.0在Windows上看不到GPU(但Theano确实如此)

Ale*_*cha 5 python windows gpu keras tensorflow

我在Windows上运行Keras&Theano的安装(按照本教程).现在我试图将后端切换到Tensorflow,它工作得非常好.

我唯一的问题是,Tensorflow没有检测到我的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']
Run Code Online (Sandbox Code Playgroud)

没有结果但是当与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)
Run Code Online (Sandbox Code Playgroud)

显然有一些配置缺失,但我不知道是什么.为了使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
Run Code Online (Sandbox Code Playgroud)

也许有类似的东西丢失或者我可能需要为Theano添加环境变量?.可能 Linux 相关的问题(?).

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

任何想法,如何使Tensorflow可见GPU?

Ste*_*ven 5

在同一台机器上安装tensorflow和tensorflow-gpu可能会导致问题.

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