在 tensorflow 官方网址上也列举了很多方法,但都很麻烦,包括 docker也没有办法在win10下应用 gpu来计算。
记录我的检查过程。
在官网搜集有用的资料。
- “在 Windows 环境中从源代码构建”中提到了经过测试后,可用的配套版本,找到一个最新的是:
| 版本 | Python 版本 | 编译器 | 构建工具 | cuDNN | CUDA |
| -------------------- | --------- | --------- | ----------- | ----- | ---- |
| tensorflow_gpu-2.6.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
从这条信息中,得出:tf2.6,python3.9,cuDNN8.1,CUDA11.2,这个组合是一个可靠的配套。 - “使用 pip 安装 TensorFlow”一节中提到:软件包位置一栏中,列出很多编译过的whl文件,找到一条我感兴趣的信息:
| Python 3.9(支持 GPU) | https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-2.6.0-cp39-cp39-win_amd64.whl |
这个好像能和上面对应上。其中提到文件:tensorflow_gpu-2.6.0-cp39-cp39-win_amd64.whl,这个名字的含义:
这个文件名tensorflow_gpu-2.6.0-cp39-cp39-win_amd64.whl
是一个用于安装 TensorFlow 的 Python wheel 包。表示这是一个用于 64 位 Windows 系统的、适用于 Python 3.9 的、支持 GPU 的 TensorFlow 2.6.0 版本的安装包。 - 还是在 pip 安装这一节也提到了使用 conda 安装,网址是:https://docs.anaconda.com/working-with-conda/applications/tensorflow/,里面提到,可以用包名 tensorflow-gpu 来搜索安装,同时也提到目前(2024.7)最新支持的tensorflow版本是2.10版。
根据以上可以推测出,在win10下,可以安装python3.9版本,tensorflow2.6的 gpu 稳定版本,及beta版本 2.10 版本。
安装前的准备工作
- 要安装 gpu 环境,一个 nvidia 的显卡及驱动是不能少的,也是物理条件。在官网根据提示下载即可。
- 安装 miniconda。
- 用 miniconda 创建一个 python3.9的虚拟环境:
conda create --name tf python=3.9
- 激活 tf 环境后,搜索 tensorflow-gpu
(tf) PS C:\Users\Logic> conda search tensorflow-gpu
Loading channels: done
# Name Version Build Channel
tensorflow-gpu 1.8.0 h21ff451_0 pkgs/main
tensorflow-gpu 1.9.0 hf154084_0 pkgs/main
tensorflow-gpu 1.10.0 hf154084_0 pkgs/main
tensorflow-gpu 1.11.0 h0d30ee6_0 pkgs/main
tensorflow-gpu 1.12.0 h0d30ee6_0 pkgs/main
tensorflow-gpu 1.13.1 h0d30ee6_0 pkgs/main
tensorflow-gpu 1.14.0 h0d30ee6_0 pkgs/main
tensorflow-gpu 1.15.0 h0d30ee6_0 pkgs/main
tensorflow-gpu 2.0.0 h0d30ee6_0 pkgs/main
tensorflow-gpu 2.1.0 h0d30ee6_0 pkgs/main
tensorflow-gpu 2.3.0 he13fc11_0 pkgs/main
tensorflow-gpu 2.5.0 h17022bd_0 pkgs/main
tensorflow-gpu 2.6.0 h17022bd_0 pkgs/main
和前面在官网搜到的信息一致,看来这就是官网能够支持的版本了,要想安装最新的 2.10 需用 conda-forge 的频道。
稳定版安装命令:
conda install tensorflow-gpu=2.6.0 cuda
5. 再用 tensorflow 搜索一些看看
... 部分
tensorflow 2.9.1 mkl_py38h7f03810_0 pkgs/main
tensorflow 2.9.1 mkl_py38hff71f30_1 pkgs/main
tensorflow 2.9.1 mkl_py39hb9887a6_0 pkgs/main
tensorflow 2.9.1 mkl_py39hc9ebea8_1 pkgs/main
tensorflow 2.10.0 eigen_py310h1d93ef9_0 pkgs/main
tensorflow 2.10.0 eigen_py37h0b514e4_0 pkgs/main
tensorflow 2.10.0 eigen_py38h465b00b_0 pkgs/main
tensorflow 2.10.0 eigen_py39hfced716_0 pkgs/main
tensorflow 2.10.0 gpu_py310h4d27e69_0 pkgs/main
tensorflow 2.10.0 gpu_py37h5d22f32_0 pkgs/main
tensorflow 2.10.0 gpu_py38h51559ff_0 pkgs/main
tensorflow 2.10.0 gpu_py39h9bca9fa_0 pkgs/main
tensorflow 2.10.0 mkl_py310hd99672f_0 pkgs/main
tensorflow 2.10.0 mkl_py38ha5c4042_0 pkgs/main
tensorflow 2.10.0 mkl_py39ha510bab_0 pkgs/main
找到其中的支持gpu最新的版本:tensorflow 2.10.0 gpu_py39h9bca9fa_0 pkgs/main
安装:
conda install tensorflow=2.10.0=gpu_py39h9bca9fa_0 cuda
每个安装命令都加上 cuda 是让 conda 自动安装对应的 cuda 环境,从最终安装的 cudnn=8.2 也和前面查询的版本差不多,说明的确是最佳组合了。
总结
在 tensorflow 官网没有提供像 pytorch 那样明确的安装命令,只能靠搜索分析一些数据,然后再合理推测,找到合理的安装方法。
虽然最后的安装命令就一行,但我记录下整个查找过程,记录学习。