- 深度學習概念(連結)
- CNN及眾多應用(連結)
- RNN及眾多應用(連結)
- TensorFlow安裝(連結)
- TensorFlow語法與使用(連結)
- Porting AI ( QCS605 QCS603 & Android )(連結)
深度學習是少數不需要許多高階伺服器就可入門的學門(當然啦,精熟之後,還是有許多機會要利用多台機器平行進行計算,那是另外的範疇
多機器訓練 )。就利用手邊PC主機,參考兩篇文件,嘗試安裝TensorFlow。
參考文件1 參考文件2
- MB:ASUS H170PRO/USB3.1/1151全固態
- CPU;INTEL I7-6700K 六代 + 酷媽120V水冷
- RAM:美光16G*2/DDR4/2400
- SSD:INTEL 600P/512G(M.2),位置是SATA3,原本是windows開機碟
- HD:Seagate 1TB/64M,位置是SATA4
- GPU:MSI GTX1070 ARMOR 8GD5
- POWER:振華 550W/80銅牌
- CASE:松聖Mavoly
OS
Windows和IOS都可以安裝深度學習套件,但主流仍是採用Ubuntu
----最早版本16
- 選擇為 Ubuntu 桌面版本 16.04 LTS(支援至 2021 年 04 月) 64 位元版本,下載點
- ISO約1.5G,下載 Rufus 3.3 將ISO寫入USB,都維持預設,選擇剛下載的ISO,燒錄約三分鐘
- USB插入機殼後
- ASUS的BIOS UEFI,DEL進入MENU,滑鼠已可直接操作,選擇 2G的MASS STORAGE為開機硬碟,重開,進入安裝程序
- 起初想保留SATA3的WINDOWS,數次失敗後,決定放棄直接覆蓋
- 程序上,選擇繁體中文,不要安裝WIFI和MP3等
GPU、更新Nvidia driver
- 單CPU也可運作,但有GPU的確很方便,首選NVidia的GTX和TESLA(p100),參考文章,GPU比CPU快80倍
- 1080ti 優於 1080 優於 1070ti 優於1070 ...依此類推
- $ sudo add-apt-repository -y ppa:graphics-drivers/ppa
- $ sudo apt-get update
- $ sudo apt-get install -y nvidia-367 (這是先前測試版本,不管啦,照著做,後來幾次發現,還是直接跳過好了)
- $ sudo apt-get install -y nvidia-384 (這是比較新的版本)
- reboot重新開機
- nvidia-smi 檢查安裝狀態 成功
安裝cuda
- $ wget "https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run"
- $ sudo chmod u+x cuda_8.0.61_375.26_linux-run
- $ sudo apt-get install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev
(先前過程中 顯示四個.so沒有裝完 加入指令後就正常)
- $ sudo sh ./cuda_8.0.61_375.26_linux-run
參考下面輸入選項
Do you accept the previously read EULA? accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.77? (y)es/(n)o/(q)uit: n 非常重要 不然前面的動作全毀
Install the CUDA 8.0 Toolkit? (y)es/(n)o/(q)uit: y
Enter Toolkit Location [ default is /usr/local/cuda-8.0]: enter
Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit:y
Install the CUDA 8.0 Samples? (y)es/(n)o/(q)uit:y
Enter CUDA Samples Location [ defualt is /home/kylebai ]: enter
似乎會有一些warming訊息 不用在意
在最後添加export CUDA_HOME=/usr/local/cuda-8.0
注意:LPATH和LIBRARY_PATH是顯示卡安裝路徑,剛剛輸入是384 安裝不同版本 可能要更改數字。
sudo vim ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/${LD_LIBRARY_PATH:+: ${LD_LIBRARY_PATH}}
export LPATH=/usr/lib/nvidia-384:$LPATH
export LIBRARY_PATH=/usr/lib/nvidia-384:$LIBRARY_PATH
儲存離開
source ~/.bashrc
nvcc -V
可以看到CUDA的版本信息,如下所示
nvcc: NVIDIA (R) Cuda compiler driver
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
測試CUDA
編譯sample
/home/kayjean/NVIDIA_CUDA-8.0_Samples (安裝目錄)
make (要先確定gcc是4.8)
make結果報錯
/usr/bin/ld: cannot find -lglut
collect2: error: ld returned 1 exit status
然后用关键词lglut搜索 sudo apt-get install freeglut3 freeglut3-dev
make clean
make
執行CUDA sample
/home/kayjean/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody
執行 ./nbody
會跳出terminal 動態顯示如煙火圖片,成功
CUDNN
專門為neural network設計架構
在
這裡 下載(經過一連串註冊過程 123Nvidia密 選擇 "Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0" "cuDNN v6.0 Library for Linux" 下載後位置是 /home/kayjean/下載是.tgz檔案 文件名稱是cudnn-8.0-linux-x64-v6.0.tgz)
tar -xvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
如果有裝5.X版本 要做這些動作 目前不需要cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
# 以下的两步设置软连接时,
一定要注意自己电脑的/usr/local/cuda/lib64/下的libcudnn.so.5.1.5名字,
有的可能是libcudnn.so.5.0.5等,要依据自己的电脑上的文件来定
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软链接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软链接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
anaconda 2
Conda是套件管理系統,可用來建立虛擬環境 如果慣用pip的人對於conda的指令一定也可以馬上上手,因為它和pip指令非常非常的相似
使用說明
使用說明2
conda是anaconda內的功能 這個模組除了conda更重要的是能夠安裝許多數學套件
在https://repo.continuum.io/archive/ 下載Anaconda2-4.4.0-Linux-x86_64.sh
sudo bash Anaconda2-4.4.0-Linux-x86_64.sh
讀完license 輸入yes
後面兩個安裝位置都選擇預設值
安裝程式會幫忙將path寫入bashrc 選擇 yes
source ~/.bashrc
目前python -v 是2.7
conda create -n tensorflow pip python=2.7
一堆訊息
選擇y
完成
conda env list
會看到tensorflow
source activate tensorflow 準備啟用
若成功 prompt就會改變
安裝TensorFlow1.4
tensorflow安裝區分成source code和binary
source code安裝 當成參考
$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow
安裝BAZEL
目前使用的是binary安裝,在前面已經建立好的tensorflow環境中
pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0-cp27-none-linux_x86_64.whl
會陸續出現下載的bar (大概十個)安裝完畢,確認tensorflow能夠使用的方法
打入python
直接貼上內容
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果看到 Hello, TensorFLow! 就代表tensorflow安装好了
exit() 離開python
利用這個指令可以看到tensorflow的安裝位置
python -c 'import os; import inspect; import tensorflow; print(os.path.dirname(inspect.getfile(tensorflow)))'
source deactivate 就會退出這個虛擬環境
----較新版本18
由同事取得18版本後,選擇清除就資料重新安裝(機器選擇短名子)。
- wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
- sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
- sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
- wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
- sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
- sudo apt updatesudo add-apt-repository ppa:graphics-drivers
- sudo apt-get update
- ubuntu-drivers devices 要能看到450
- sudo apt-get install nvidia-driver-450 nvidia-settings
- sudo reboot
- nvidia-smi
繼續安裝加速功能CUDA和cudnn
- sudo apt install --no-install-recommends cuda-10-1
- cd /usr/local/cuda/samples/5_Simulations/nbody 用root身份make 並且執行./nbody就會看到執行的結果 確認有裝成功
- sudo apt install --no-install-recommends libcudnn7=7.6.5.32-1+cuda10.1
- sudo apt install --no-install-recommends libcudnn7-dev=7.6.5.32-1+cuda10
- 這是後來好像要安裝 ncvv另外安裝的sudo apt install nvidia-cuda-toolkit,不確定是否要裝
- nvcc -V
anaconda
因為需要UI,所以不考慮docker,就繼續沿用anaconda,下載最新版本後Anaconda3-2020.07-Linux-x86_64.sh後,python預設為3.8(2的機會越來越少了)。套件管理系統是Conda,類似pip,可用來建立虛擬環境。
- bash Anaconda3-2020.07-Linux-x86_64.sh 最後選擇yes
- source ~/.bashrc
- conda info 前面的指標都變成base了
- conda create -n tensorflow_gpu pip python=3.7 opencv (3.8好像有問題) 設定頗久
- 可以透過指令看已有的虛擬環境 conda env list
- 若要刪除某虛擬環境的話 conda env remove -n (虛擬環境名稱)
- 開始虛擬環境 conda activate tensorflow_gpu
- 離開虛擬環境 conda deactivate
conda and tensorflow
- conda install -c anaconda tensorflow-gpu 這會去下載最新版本 似乎是2.1版本
- 測試安裝狀況 python / import tensorflow as tf / tf.__version__
- nvcc -V
- import tensorflow as tf
a = tf.test.is_built_with_cuda() //check cuda
b = tf.test.is_gpu_available(
cuda_only=False,
min_cuda_compute_capability=None
) //check GPU
print(a)
print(b)
True
True
It works