1.註冊百度AIStudio平臺賬號
完成任務(兩三分鐘)可以獲得100小時的GPU
地址 https://aistudio.baidu.com/ (創建項目,上傳數據集,啓動項目很快就能學會使用)
tensorflow-gpu 2.0所依賴的cuda要求10.0版本,但是AIStudio啓動項目的時候自帶的顯卡驅動的版本是隨機的,有時候是396.37版本有時候是418.67版本,410.18以上版本的顯卡驅動才能安裝,版本爲10.0以上的cuda。tensorflow-gpu2.0需要cuda10以上的版本。當啓動項目後可以在終端裏運行 nvidia-smi查看顯卡的驅動版本,當不是410.18以上版本的顯卡驅動時,就關閉項目重新啓動項目。
進入項目
2.創建項目
填好有關內容然後點擊創建
點擊啓動環境進入環境
3.開始配置cuda cudnn
安裝cuda之前要先查看需要安裝的tensorflow-GPU的版本,然後根據要求安裝cuda和cudnn
3.1查看顯卡驅動
在終端裏運行 nvidia-smi
3.2查看驅動對應的cuda版本
地址:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
第一列是cuda的版本,後面的是不同系統下要求的顯卡驅動的版本
3.3選擇cudnn 版本
查看cuda 和Tenforflow 對應版本 https://tensorflow.google.cn/install/source#linux
4.安裝
4.1 下載 cuda
cuda下載地址:https://developer.nvidia.com/cuda-toolkit-archive
通過查看cuda和tensorflow對應的版本,瞭解tensorflow-gpu2.0需要cuda 10.0的版本
通過上面的操作獲取cuda 10.0的下載鏈接,然後在終端裏運行命令進行下載
wget https://developer.download.nvidia.cn/compute/cuda/10.0/secure/Prod/local_installers/cuda_10.0.130_410.48_linux.run?OnN3PY3g_ICisEV51jM_3xRvnfI2xC_nCI8ATsoWCXzJHiiBT-1GEqleZZ5BW0C2tOt61-d4wwd3esbIBiGyB0XLAF7AFFiQPIMdJ8IO74JkFZTcoPYY6vVgpiHHMasR5oaw6bie4L-sNtichQ9kxadF4g8QxC3zWi4qvgf70lICDp5vn1n-15nZxWU
名字太長了改一下名字,改成 cuda_10.0.130_410.48_linux.run
4.2 下載 cudnn
查看cuda cudnn 對應版本 https://tensorflow.google.cn/install/source#linux
cudnn下載地址:https://developer.nvidia.com/rdp/cudnn-archive 需要註冊登錄
cudnn 需要和linux系統版本對應 查看linux版本,
按理說這裏我們應該安裝 CuDnn 的版本是 7.4的纔對,但是在運行程序的時候這樣會報錯
“oaded runtime CuDNN library: 7.3.1 but source was compiled with: 7.6.0. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version.”
所以根據提示我們這裏安裝 CuDNN 7.6的版本
獲取下載鏈接後
造終端裏運行命令進行下載
wget https://developer.download.nvidia.cn/compute/machine-learning/cudnn/secure/v7.6.0.64/prod/10.0_20190516/cudnn-10.0-linux-x64-v7.6.0.64.tgz?4kHTlAbErld9rtzqyRZLaBRl3MDgNAe0FUNStonlQLin4d6UPYIr6FOpOHElIO5XkVsvWj8czg8y2pn5YgMHR_V11cbjDaCmmG1BJWhEyR7GjaEI4wCCGD_qJUpL_4EjG2JbiWhV8siTTVb5Rpf2wCwzezaC_kX9kDtAUGCyi0M-ZOp6zEepAoBwv_oORTqyvA-ZwoEY_S9muSfqIKmimhXMUnw
下載之後把名字改一下,改成cudnn-10.0-linux-x64-v7.6.0.64.tgz
4.3 安裝
新建一個目錄 : mkdir cuda-10.0
安裝cuda :
sh cuda_10.0.130_410.48_linux.run --silent --toolkit --toolkitpath=$HOME/cuda-10.0
安裝cudnn
解壓下載的cudnn,默認會解壓到cuda文件夾中
tar -zxvf ./cudnn-10.0-linux-x64-v7.6.0.64.tgz
解壓把cudnn的指定文件copy到cuda安裝文件對應的目錄中,注意目錄要對,這一步只需要做一次就可以
cp cuda/include/cudnn.h cuda-10.0/include/
cp cuda/lib64/libcudnn* cuda-10.0/lib64/
4.4 修改權限
chmod a+r ~/cuda-10.0/include/cudnn.h
chmod a+r ~/cuda-10.0/lib64/libcudnn*
4.5 配置環境
vi ~/.bashrc
export PATH=/home/aistudio/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/home/aistudio/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/home/aistudio/cuda-10.0
source ~/.bashrc
5 安裝TensorFlow-GPU 2.0
在按照自己的需要安裝 Python包時不要直接安裝,就是說不要把包安裝在 base 環境和 paddle 的環境中,因爲這樣不會持久,當我們關閉項目重新啓動時,我們自己安裝的包就都沒有了。
持久化的問題在我們創建項目的時候自帶的Notebook中已經給出瞭解決方法
首先創建一個文件夾來放我們自己的 Python 包
mkdir /home/aistudio/external-libraries
然後把我們需要的包都安裝在這個文件夾中,如安裝 beautifulsoup4
pip install beautifulsoup4 -t /home/aistudio/external-libraries
當我們要使用beautifulsoup4時需要在Python代碼中添加如下代碼就可以了。
import sys
sys.path.append('/home/aistudio/external-libraries')
所以我們也要把TensorFlow-gpu 2.0安裝在這個文件夾中
pip install tensorflow-gpu==2.0.0 -t /home/aistudio/external-libraries
這樣就可以持久化了。
6 訓練自己的模型
在終端中執行自己的程序
7 注意
我們這樣設置的tensorflow的環境是不能使用AiStudio自帶的notebook的,但是我們可以在終端裏執行自己的代碼。
當我們重新啓動項目後發現不能正常使用了,怎麼搞的呢?
1.首先我們要檢測顯卡的驅動程序的版本是不是 418.67或以上,
如果不是就重新啓動項目,直到分配到這個版本的環境爲止,
2.需要重新修改有關文件的權限和配置環境變量,怎麼設置的參考上面的 4.4 修改權限 和 4.5 配置環境。
然後就可以正常執行自己的代碼了。但是感覺這樣還是有點麻煩,那就搞個腳本吧把修改權限和配置環境放在腳本里
創建一個文件 auto_chmod_env.sh ,點擊打開,填入一下內容
#!/bin/bash
chmod a+r ~/cuda-10.0/include/cudnn.h
chmod a+r ~/cuda-10.0/lib64/libcudnn*
echo 'export PATH=/home/aistudio/cuda-10.0/bin${PATH:+:${PATH}};export LD_LIBRARY_PATH=/home/aistudio/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}};export CUDA_HOME=/home/aistudio/cuda-10.0' > ~/envm
source ~/envm
當項目重新啓動後只要在終端裏執行一下語句
source auto_chmod_env.sh
就自動修改了有關文件的權限和配置好了環境,然後自己運行自己的代碼就行了。
注意
在執行代碼時,一定要在要執行的代碼中添加
import sys
sys.path.append('/home/aistudio/external-libraries')
引用