2018年10月1日 星期一

筆記:TensorFlow安裝

  • 深度學習概念(連結)
  • CNN及眾多應用(連結)
  • RNN及眾多應用(連結)
  • TensorFlow安裝(連結)
  • TensorFlow語法與使用(連結)
  • Porting AI ( QCS605 QCS603 & Android )(連結)

深度學習是少數不需要許多高階伺服器就可入門的學門(當然啦,精熟之後,還是有許多機會要利用多台機器平行進行計算,那是另外的範疇多機器訓練 )。就利用手邊PC主機,參考兩篇文件,嘗試安裝TensorFlow。 參考文件1  參考文件2

  1. MB:ASUS H170PRO/USB3.1/1151全固態
  2. CPU;INTEL I7-6700K 六代  + 酷媽120V水冷
  3. RAM:美光16G*2/DDR4/2400
  4. SSD:INTEL 600P/512G(M.2),位置是SATA3,原本是windows開機碟
  5. HD:Seagate 1TB/64M,位置是SATA4
  6. GPU:MSI GTX1070 ARMOR 8GD5
  7. POWER:振華 550W/80銅牌
  8. CASE:松聖Mavoly

OS Windows和IOS都可以安裝深度學習套件,但主流仍是採用Ubuntu

 

 

 ----最早版本16

  1. 選擇為 Ubuntu 桌面版本 16.04 LTS(支援至 2021 年 04 月) 64 位元版本,下載點
  2. ISO約1.5G,下載 Rufus 3.3 將ISO寫入USB,都維持預設,選擇剛下載的ISO,燒錄約三分鐘
  3. USB插入機殼後
  4. ASUS的BIOS UEFI,DEL進入MENU,滑鼠已可直接操作,選擇 2G的MASS STORAGE為開機硬碟,重開,進入安裝程序
  5. 起初想保留SATA3的WINDOWS,數次失敗後,決定放棄直接覆蓋
  6. 程序上,選擇繁體中文,不要安裝WIFI和MP3等

GPU、更新Nvidia driver


  1. 單CPU也可運作,但有GPU的確很方便,首選NVidia的GTX和TESLA(p100),參考文章,GPU比CPU快80倍
  2. 1080ti 優於 1080 優於 1070ti 優於1070 ...依此類推
  3. $ sudo add-apt-repository -y ppa:graphics-drivers/ppa
  4. $ sudo apt-get update
  5. $ sudo apt-get install -y nvidia-367 (這是先前測試版本,不管啦,照著做,後來幾次發現,還是直接跳過好了)
  6. $ sudo apt-get install -y nvidia-384 (這是比較新的版本)
  7. reboot重新開機
  8. nvidia-smi 檢查安裝狀態 成功

安裝cuda


  1. $ wget "https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run"
  2. $ sudo chmod u+x cuda_8.0.61_375.26_linux-run
  3. $ sudo apt-get install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev 
    (先前過程中 顯示四個.so沒有裝完 加入指令後就正常)
  4. $ 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版本後,選擇清除就資料重新安裝(機器選擇短名子)。

  1. wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
  2. sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
  3. sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
  4. wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
  5. sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
  6. sudo apt updatesudo add-apt-repository ppa:graphics-drivers
  7. sudo apt-get update
  8. ubuntu-drivers devices 要能看到450
  9. sudo apt-get install nvidia-driver-450 nvidia-settings
  10. sudo reboot
  11. nvidia-smi

繼續安裝加速功能CUDA和cudnn

  1. sudo apt install --no-install-recommends cuda-10-1
  2. cd /usr/local/cuda/samples/5_Simulations/nbody 用root身份make 並且執行./nbody就會看到執行的結果 確認有裝成功
  3. sudo apt install --no-install-recommends libcudnn7=7.6.5.32-1+cuda10.1
  4. sudo apt install --no-install-recommends libcudnn7-dev=7.6.5.32-1+cuda10
  5. 這是後來好像要安裝 ncvv另外安裝的sudo apt install nvidia-cuda-toolkit,不確定是否要裝
  6. nvcc -V

anaconda 

因為需要UI,所以不考慮docker,就繼續沿用anaconda,下載最新版本後Anaconda3-2020.07-Linux-x86_64.sh後,python預設為3.8(2的機會越來越少了)。套件管理系統是Conda,類似pip,可用來建立虛擬環境。

  1. bash Anaconda3-2020.07-Linux-x86_64.sh 最後選擇yes
  2. source ~/.bashrc
  3. conda info  前面的指標都變成base了
  4. conda create -n tensorflow_gpu pip python=3.7 opencv  (3.8好像有問題)  設定頗久
  5. 可以透過指令看已有的虛擬環境 conda env list
  6. 若要刪除某虛擬環境的話   conda env remove -n (虛擬環境名稱)
  7. 開始虛擬環境 conda activate tensorflow_gpu
  8. 離開虛擬環境 conda deactivate

conda and tensorflow

  1. conda install -c anaconda tensorflow-gpu  這會去下載最新版本 似乎是2.1版本
  2. 測試安裝狀況 python / import tensorflow as tf / tf.__version__
  3. nvcc -V
  4. 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

沒有留言:

張貼留言