Win 10 环境安装TensorFlow 2.1.0 GPU版本的失败经历

本机配置

  • 系统:Win 10笔记本
  • 显卡:GeForce 940MX, computeCapability: 5.0
  • Python:3.6
  • CUDA版本:10.1
  • cuDNN版本:7.6.5

官网安装说明

  1. 官方的硬件及软件要求 (GPU版本)

The following NVIDIA® software must be installed on your system:

  • NVIDIA® GPU drivers —CUDA 10.1 requires 418.x or higher.
  • CUDA® Toolkit —TensorFlow supports CUDA 10.1 (TensorFlow >= 2.1.0)
  • CUPTI ships with the CUDA Toolkit.
  • cuDNN SDK (>= 7.6)
  • (Optional) TensorRT 6.0 to improve latency and throughput for inference on some models.
  1. GPU型号和cuda版本的对应关系
  2. cuDNN的安装说明参考这里 ,下载cuDNN需要注册登录。

安装 TensorFlow

在对应的conda环境下安装
pip install tensorflow # install in $HOME,默认安装GPU版本 2.1.0

测试

官方说明在这里

from __future__ import absolute_import, division, print_function, unicode_literals

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
output:
2020-02-26 13:52:57.152740: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2020-02-26 13:53:13.930344: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2020-02-26 13:53:14.241621: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce 940MX computeCapability: 5.0
coreClock: 1.189GHz coreCount: 3 deviceMemorySize: 2.00GiB deviceMemoryBandwidth: 37.33GiB/s
2020-02-26 13:53:14.251583: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2020-02-26 13:53:14.267335: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
2020-02-26 13:53:14.281962: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll
2020-02-26 13:53:14.292789: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll
2020-02-26 13:53:14.308111: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll
2020-02-26 13:53:14.322738: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll
2020-02-26 13:53:14.341372: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-02-26 13:53:14.349375: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0      Num GPUs Available:  1

此时,我以为大功告成了! 一阵窃喜,然后继续测试,

In [4]: a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
   ...: b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
   ...: c = tf.matmul(a, b)
   ...:
   ...: print(c)
   ...:
output:
2020-02-26 14:00:13.049637: I tensorflow/core/platform/cpu_feature_guard.cc:142]
 Your CPU supports instructions that this TensorFlow binary was 
 not compiled to use: AVX2
2020-02-26 14:00:13.056240: F tensorflow/stream_executor/lib/statusor.cc:34] 
Attempting to fetch value instead of handling error Internal:
 failed to get device attribute 13 for device 0: CUDA_ERROR_UNKNOWN: unknown error

程序报错了……

网上查找一通,仍然没有解决。有人说,这几句代码怎么知道是在GPU上运行的呢?因为官方文档是这么说的:

If a TensorFlow operation has both CPU and GPU implementations, by default the GPU devices will be given priority when the operation is assigned to a device. For example, tf.matmul has both CPU and GPU kernels. On a system with devices CPU:0 and GPU:0, the GPU:0 device will be selected to run tf.matmul unless you explicitly request running it on another device.

如果一个算子,既有cpu实现,也有gpu实现,那么优先选择运行在GPU上,而且框架是自动切换的。

对于这个错误,有人说是GPU型号不行,性能太差,如果真的是这样的话,那就是硬伤了,不抱希望了,换回CPU版本了。
安装CPU版本后,代码就可以运行了。以后有计划再尝试吧。
如果有人解决了,我也可以参考下,感谢~
2020-02-26

更新【2021-01-16】
根据评论中exthe对原因的说明,

就是显卡智能切换的问题,因为笔记本有集成显卡和独立显卡,他们是由主板控制智能切换的,而CUDA只认识自家的nvidia显卡,要在训练文件里面手动指定一下独立显卡。

因此添加可见GPU卡的系统环境变量可解决以上问题。(感谢exthe的评论)
两种添加方式,可选一个即可。

  1. 在代码中添加:
os.environ['CUDA_VISIBLE_DEVICES']='0'
  1. 在系统变量编辑窗口添加:

修改环境变量

此处值为0 、1或其他, 根据个人GPU卡的序号决定,可通过nvidia-smi 查看:
在这里插入图片描述
测试gpu可用:
gpu可用

### 回答1: 1. 确认你的电脑是否支持GPU加速,如果支持,需要安装相应的显卡驱动程序。 2. 安装CUDA Toolkit,这是一个用于GPU加速的工具包,可以从NVIDIA官网下载对应版本的CUDA Toolkit。 3. 安装cuDNN,这是一个用于深度学习的GPU加速库,也可以从NVIDIA官网下载对应版本的cuDNN。 4. 安装Anaconda或者Miniconda,这是一个Python的环境管理工具,可以从官网下载对应版本安装包。 5. 创建一个新的conda环境,可以使用以下命令: conda create -n tensorflow-gpu python=3.7 6. 激活新的conda环境,可以使用以下命令: conda activate tensorflow-gpu 7. 安装tensorflow-gpu,可以使用以下命令: pip install tensorflow-gpu==2.1. 8. 安装其他需要的Python库,例如numpy、matplotlib等。 9. 测试安装是否成功,可以使用以下代码: import tensorflow as tf print(tf.__version__) print(tf.test.is_gpu_available()) 如果输出的版本号为2.1.,并且is_gpu_available()返回True,则说明安装成功。 以上就是tensorflow2.1.gpu安装教程的详细步骤。 ### 回答2: TensorFlow是一种用于机器学习和深度学习的开源软件库,2.1.0是TensorFlow的一个版本。通常情况下,安装TensorFlow可以在CPU和GPU上进行。现在,我们将介绍安装TensorFlow 2.1.0 GPU版本的步骤。 首先,安装CUDA和cuDNN,因为TensorFlow需要这些软件来与GPU进行交互。 CUDA是英伟达公司的GPU加速计算平台,而cuDNN是针对深度学习的GPU加速库。您可以在英伟达的官方网站上下载并安装最新版本。确保您的CUDA和cuDNN是与您的TensorFlow版本兼容的。安装完成后,请将CUDA和cuDNN的路径添加到您的系统环境变量中。 接下来,您可以使用命令行(cmd)或Jupyter笔记本来安装TensorFlow。首先,确保您的pip是最新版本,可以使用以下命令来更新: ``` pip install --upgrade pip ``` 然后,使用以下命令来安装TensorFlow2.1.0: ``` pip install tensorflow-gpu==2.1.0 ``` 如果您在安装过程中遇到问题,请检查CUDA和cuDNN的版本是否正确并添加到系统环境变量中。此外,如果您使用Anaconda或其他虚拟环境,请确保您已激活该环境安装完成后,您可以使用以下代码来检查TensorFlow是否已正确安装: ``` import tensorflow as tf print(tf.__version__) print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU'))) ``` 如果控制台输出TensorFlow版本GPU的数量,则说明TensorFlow已正确安装。 总之,安装TensorFlow2.1.0 GPU版本需要先下载和安装CUDA和cuDNN,然后使用pip命令来安装TensorFlow。尽管安装有一定的技术含量,但这个过程是很简单的,只要您遵循上述步骤,就可以很快地安装TensorFlow2.1.0 GPU版本。 ### 回答3: Tensorflow是一种广泛使用的深度学习框架。在开发过程中,许多人希望能够使用graphics processing unit (GPU)来加速模型的训练,因为GPU可以极大地提高训练速度。在这篇文章中,我们提供了Tensorflow2.1.0的GPU安装教程,帮助大家快速地安装其运行环境。 第一步:安装Anaconda 在开始安装Tensorflow之前,我们需要先安装Anaconda,这是一种功能强大的Python发行版,可让我们轻松地配置Python环境并管理第三方软件包。 在安装Anaconda之前,我们需要在官网下载对应的安装文件。下载完成后,按照官方指示逐步安装即可。 第二步:创建Python虚拟环境 接下来,我们需要创建一个虚拟环境,以便Tensorflow与其他Python库不会产生冲突。在Anaconda Navigator中,打开终端或cmd,输入以下命令即可: conda create -n tensorflow-gpu python=3.7 在此过程中,我们可以根据需求将虚拟环境命名为tensorflow-gpu。此外,在创建时,我们还需要确保python版本是3.7或更高版本。 第三步:安装NVIDIA显卡驱动和CUDA 在使用GPU加速Tensorflow之前,我们需要安装NVIDIA显卡驱动和CUDA库。为了安装CUDA库,我们首先需要确定计算机的显卡型号。可以通过以下命令进行检查: nvidia-smi 在确定显卡型号后,我们需要从官方网站下载与其兼容的驱动程序和CUDA版本。 下载完成后,我们需要在Anaconda中打开虚拟环境,进入虚拟环境后,使用以下命令进行安装: conda install cudatoolkit=10.1 在此安装命令中,cudatoolkit版本号为10.1,以适应NVIDIA驱动程序。需要根据自己的显卡型号选择安装相应版本的显卡驱动程序和CUDA。 第四步:安装Tensorflow GPU版本 当我们完成了CUDA和显卡驱动程序的安装之后,我们就可以安装Tensorflow GPU版本了。在虚拟环境中,使用以下命令进行安装: pip install tensorflow-gpu==2.1.0 -i https://pypi.douban.com/simple/ 在此命令中,我们指定了tensorflow-gpu版本2.1.0,以保证Tensorflow版本与CUDA和显卡驱动程序的兼容性。 第五步:测试安装 在完成安装之后,我们可以尝试运行以下Python代码,以测试Tensorflow是否成功安装: import tensorflow as tf print(tf.__version__) 如果正确安装,输出结果应该显示安装Tensorflow版本号。 以上就是Tensorflow2.1.0 GPU安装教程的全部步骤,希望以上内容能够对大家有所帮助。需要注意的是,安装过程中需要考虑到调整台式电脑或者笔记本电脑的显卡适用性问题,出现驱动兼容性问题需要及时修改配置,否则将无法完成安装和调试。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值