Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tensorflow过渡到gpu版本_Python_Tensorflow - Fatal编程技术网

Python tensorflow过渡到gpu版本

Python tensorflow过渡到gpu版本,python,tensorflow,Python,Tensorflow,我使用tensorflow已经有一段时间了,在我尝试切换到gpu版本之前,一切都正常工作 卸载以前的tensorflow, pip安装的tensorflow gpu(v2.0) 下载并安装visual studio community 2019 已下载并安装CUDA 10.1 下载并安装cuDNN 使用CUDA样本“deviceQuery_vs2019”进行测试,结果为阳性。 测试通过 英伟达GeForce rtx 2070 使用以前的工作文件运行测试并获取错误 tensorflow.pytho

我使用tensorflow已经有一段时间了,在我尝试切换到gpu版本之前,一切都正常工作

卸载以前的tensorflow, pip安装的tensorflow gpu(v2.0) 下载并安装visual studio community 2019 已下载并安装CUDA 10.1 下载并安装cuDNN

使用CUDA样本“deviceQuery_vs2019”进行测试,结果为阳性。 测试通过 英伟达GeForce rtx 2070

使用以前的工作文件运行测试并获取错误 tensorflow.python.framework.errors\u impl.InternalError:cudaGetDevice()失败。状态:未找到cudaGetErrorString符号

经过一些研究,我发现支持的CUDA版本是10.0 所以我降低了版本,更改了CUDA路径,但没有任何更改

使用此代码


import tensorflow as tf
print("Num GPUs Available: ", 
len(tf.config.experimental.list_physical_devices('GPU')))
我明白了

2019-10-01 16:55:03.317232: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2019-10-01 16:55:03.420537: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties: 
Num GPUs Available:  1
name: GeForce RTX 2070 major: 7 minor: 5 memoryClockRate(GHz): 1.62
pciBusID: 0000:01:00.0
2019-10-01 16:55:03.421029: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-10-01 16:55:03.421849: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
[Finished in 2.01s]
CUDA似乎能识别卡,tensorflow也能识别,但我无法消除错误: tensorflow.python.framework.errors\u impl.InternalError:cudaGetDevice()失败。状态:未找到cudaGetErrorString符号


我做错了什么?我应该坚持使用cuda 10.0吗?我是否错过了安装的一部分?

解决了,这主要是为了避免冲突而对版本进行的炼金术。 以下是我所做的(据我所知,订单很重要)

  • 卸载所有内容(tf、cuda、visual studio)
  • pip安装tensorflow gpu
  • 下载并安装visual studio community 2017(2019年不起作用)
  • <>我还安装了VisualStudio中的C++工作负载(不确定是否有必要,但它有编译器Visual C++ 15 .x)
  • 下载并安装cuda 10.0(我的版本是10.0.130)
  • 转到系统环境变量(在windows栏中搜索)>高级>单击环境变量
  • 创建新的用户变量(不要与系统变量混淆)
  • 变量名称:CUDA_路径
  • 变量值:浏览到cuda目录下的版本目录(我的是C:\Program Files\NVIDIA GPU Computing Toolkit\cuda\v10.0)
  • 指南上说你需要CUDNN7.4.1,但我得到一个错误,预期的最低版本是7.6。转到英伟达开发者CUDNN存档,下载“CUDNN V7.06 CUDA 10”(确保您得到正确的文件)。解压后,将cudnn文件放入相应的cuda目录(lib、include、bin)
  • 从那以后,一切都很顺利。我还不能从VisualStudio(devicequery)中构建cuda示例文件,但这并不是关键步骤。 几乎所有的错误都是由于文件版本不兼容造成的,我花了3-4天的时间才找到正确的组合。希望获得帮助:)

    tensorflow gpu v2.0.0是,并且非常易于安装:
    conda安装-c anaconda tensorflow gpu
    。不需要额外的下载或cuda安装。

    我也遇到过类似的问题。 再加上我使用的是Windows8和pycharm。但我最终还是通过使用

    有效的组合:

    • Cuda 10
    • 适用于windows7的CuDNN 7.6
    • Tensorflow gpu 2.0
    • 然后使用如上所述的path环境变量
    重要的是在设置环境变量后重新启动;)


    我不认为tensorflow 2.2。无法使用cuda 11…

    暗示需要cuda 10.0,我在其他地方(github?)看到了使用10.0而不是10.1的说明。不幸的是,我有10.0,我有完全相同的错误,所以我也会对一个有用的解释性答案感兴趣。你救了我的命。我花了整整一天的时间来完成这项工作,但没有成功。我不明白的是为什么tensorflow 2.0甚至需要更低的cuda和cudnn版本来运行。我的另一台电脑使用tensorflow 1.14和cuda 10.1。但是2.0需要cuda 10.0。不知道为什么!但是谢谢你@m4l4如果我们使用水蟒,它可以很容易地解决?