windows10用conda搭建tensorflow的gpu環境

立体风發表於2024-07-02

在 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 版本。

安裝前的準備工作

  1. 要安裝 gpu 環境,一個 nvidia 的顯示卡及驅動是不能少的,也是物理條件。在官網根據提示下載即可。
  2. 安裝 miniconda。
  3. 用 miniconda 建立一個 python3.9的虛擬環境:conda create --name tf python=3.9
  4. 啟用 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 那樣明確的安裝命令,只能靠搜尋分析一些資料,然後再合理推測,找到合理的安裝方法。
雖然最後的安裝命令就一行,但我記錄下整個查詢過程,記錄學習。

相關文章