如何解决windows系统下新版本tensorflow的gpu的加速问题

方案一:安装兼容CUDA 12的TensorFlow 2.10+版本(最推荐)

从TensorFlow 2.11开始,官方停止发布了Windows上的原生GPU支持版本。但是,社区提供了一个非常稳定且官方的替代品:tensorflow-cpu包和tensorflow-directml-plugin,后者可以让TensorFlow利用包括NVIDIA在内的多种GPU在Windows上运行。

这是目前Windows上最简单、最干净的TensorFlow GPU解决方案。

步骤如下:

  1. 创建并激活一个Conda环境(强烈建议,可以避免包冲突)

    使用 win+r 打开命令提示符,打开终端使用如下命令

    conda create -n tf_win_gpu python=3.10
    conda activate tf_win_gpu
    

    (Python 3.9 或 3.10 与 TensorFlow 2.10 兼容性较好)

  2. 安装TensorFlow CPU版本和DirectML插件
    在激活的tf_win_gpu环境中,运行:

    pip install tensorflow-cpu
    pip install tensorflow-directml-plugin
    

    注意:tensorflow-directml-plugin 版本会自动与 tensorflow-cpu 的主版本匹配。如果你安装 tensorflow-cpu==2.10,它会自动安装兼容的插件版本。

  3. 验证安装
    打开Python,运行以下代码:

    import tensorflow as tf
    print(tf.__version__)
    print(tf.config.list_physical_devices('GPU'))
    

    如果输出类似以下内容,说明成功!它应该能检测到你的NVIDIA GPU。

    2.10.0
    [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
    

原理: 这个插件将TensorFlow的GPU操作指令转换成了DirectML(一个Windows底层的机器学习API),从而让你的NVIDIA GPU(支持CUDA 12.1)能够正常工作,而无需手动配置复杂的CUDA环境。


方案二:降级你的CUDA工具包(传统方法,较麻烦)

如果你因为某些原因必须使用原生的CUDA支持(例如某些极特殊的自定义操作),你可以选择将你的CUDA驱动和工具包降级到TensorFlow 2.10官方支持的版本。

警告:此方法会修改系统环境,可能影响你机器上其他依赖CUDA 12.1的软件。

  1. 卸载当前CUDA工具包
    通过Windows的“添加或删除程序”,卸载所有名称中包含“CUDA”的程序(通常是NVIDIA CUDA Toolkit 12.1.x.x)。

  2. 安装CUDA 11.2

    • 从NVIDIA官网下载 CUDA Toolkit 11.2.2
    • 选择Windows、x86_64、10(或11)、exe(local)版本进行安装。
  3. 安装cuDNN 8.1.0 for CUDA 11.2

    • 前往 NVIDIA cuDNN存档页面 (需要注册登录)。
    • 下载 for CUDA 11.2cuDNN v8.1.0
    • 下载后是一个压缩包,将其解压。你会得到几个文件夹(bin, include, lib)。
    • 将这三个文件夹里的内容,分别复制到你的CUDA安装目录(默认是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2)对应的文件夹中。
  4. 设置环境变量
    确保你的系统环境变量PATH中包含CUDA的路径:

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp
    
  5. 在Conda环境中安装TensorFlow GPU

    conda create -n tf_old_cuda python=3.9
    conda activate tf_old_cuda
    pip install tensorflow==2.10.0
    

    再次使用验证脚本检查。


总结与推荐

方案优点缺点推荐度
方案一 (DirectML)无需改动系统CUDA,安装简单干净,兼容性强,是微软官方支持的未来方向。性能可能比原生CUDA略低(但对大多数应用感知不强),极少数非常底层的自定义操作可能不兼容。★★★★★ (极力推荐)
方案二 (降级CUDA)原生CUDA支持,理论性能最佳,兼容所有TensorFlow操作。安装配置复杂,会影响系统全局CUDA环境,可能导致其他需要CUDA 12的程序无法运行。★★☆☆☆ (仅限特殊情况)

给你的最终建议:

直接采用方案一。这是目前为Windows上的TensorFlow配置GPU最现代化、最无痛的方法。它完美地解决了你的CUDA 12.1和TensorFlow 2.10的版本冲突问题,让你能立即开始工作。

只有在你的工作流极度依赖某个必须在原生CUDA环境下才能运行的特定库时,才去考虑方案二这个“折腾”的路线。

怎么使用Pycharm打开创建好的虚拟环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值