# CUDA、cuDNN、TensorFlow 虛擬環境建置紀錄 因為最近大三要做專題 系上提供了一台配有 GPU(1650ti) 的筆電 就順便紀錄一下 cuda、cudnn 和 tensorflow-gpu 的安裝過程 ## **Step 0 確認 GPU 配對的 CUDA 版本** 1. 首先在cmd下 ``` nvidia-smi ``` 2. 這裡會顯示你的所有 GPU 資訊和 GPU 的使用情況。第一行中,CUDA Version 顯示的是**可以安裝 CUDA 的最高版本**,依照我的顯示卡來說,最高是到 12.0 ! ![pic1](https://hackmd.io/_uploads/r1lj3aVja.png) 3. TensorFlow、CUDA、cuDNN 對照表可以到 [這裡](https://tensorflow.google.cn/install/source_windows?hl=en#gpu) 看 (TensorFlow 對應的 CUDA 只能高不能低,但有時太高也會出問題,盡量接近或相同) ## **Step 1 下載 cuda** 知道了電腦需要的 CUDA 版本之後就可以開始安裝 CUDA 了 CUDA 下載在 [這裡](https://developer.nvidia.com/cuda-toolkit-archive) 依照我的 GPU 支援的 CUDA 我就找 12.0 以下的 1. **先從官網找 exe** ![pic2](https://hackmd.io/_uploads/SkQMU1Bj6.png) 2. **開始安裝** ![pic3](https://hackmd.io/_uploads/r1O4UkBoa.png) 3. **選擇自訂** ![pic4](https://hackmd.io/_uploads/HkQwLyBip.png) 4. **選擇 CUDA 就好** ![pic5](https://hackmd.io/_uploads/B1_2c1Sia.png) 5. **檢查 CUDA 位置** 之後下載結束後,可以在 cmd 下 ``` where nvcc ``` 可以查看 cuda 安裝的位置 ![pic6](https://hackmd.io/_uploads/BJlG2JHja.png) ## **Step 2 下載 cuDNN** CUDA 下載後就要換下載 cuDNN 了 cuDNN 下載在 [這裡](https://developer.nvidia.com/rdp/cudnn-archive) 1. **先從官網找版本** 他都會說他是 for 什麼版本的 CUDA ![pic7](https://hackmd.io/_uploads/BkT0Tkria.png) 2. **下載 Local Installer for Windows** 因為我作業系統是 Windows 下載 Local Installer for Windows ![pic8](https://hackmd.io/_uploads/rybUJgrsa.png) 3. **把資料放進 CUDA 資料夾** 下載完 zip 裡的資料夾大概長這樣 ![pic9](https://hackmd.io/_uploads/HyZpgersp.png) 然後到 cuda 的資料夾位置裡,會有跟剛剛 cuDNN 同名的資料夾 ![pic10](https://hackmd.io/_uploads/HyHdmxro6.png) 之後就把 bin、include、lib,覆蓋掉 cuda 裡同名的資料夾,CUDA 和 cuDNN 在這裡就已經完成了 ## **Step 3 使用 Virtualenv 創建虛擬環境** 1. **安裝 Virtualenv** ``` pip install virtualenv ``` 2. **確認python位置** Virtualenv 的語法可以指定 Python 版本創建虛擬環境 要確定 Python 位置可以下 ``` where python ``` ![pic11](https://hackmd.io/_uploads/BJaTzZBip.png) 3. **創建虛擬環境** 前面是指定 Python 版本,後面是虛擬環境名稱 ``` virtualenv --python=C:\python\python\py37_9\python.exe test_venv ``` 4. **啟動虛擬環境** ``` cd test_venv/Script activate ``` 前面有 (test_venv) 就代表成功啟動了 ![pic12](https://hackmd.io/_uploads/rJtXibHop.png) 5. **退出虛擬環境** ``` deactivate ``` ## **Step 4 虛擬環境中安裝 TensorFlow** 我這個虛擬環境 Python 版本是 3.7.9,那我選一個支援的 TensorFlow-GPU 版本是 2.8.0 ``` pip install tensorflow-gpu==2.8.0 ``` 之後想要確認 GPU 是否抓的到,可以依以下步驟 1. 創建一個 Python 程式 2. import 套件 ```python= import tensorflow ``` 必須沒有出現 No Moudle named "tensorflow",才算成功 3. 檢查 CUDA 能否抓到 GPU ```python= from tensorflow.python.client import device_lib print(device_lib.list_local_devices()) ``` 有出現 GPU 才算完成 ## **Step 5 打包venv** 可以把虛擬環境中安裝的套件全部列為一個 txt ``` pip freeze > requirements.txt ``` 安裝套件 txt 中的套件 ``` pip install -r requirements.txt ```