--- title: 簡單在ubuntu 安裝CUDA/cudnn/tensorflow-gpu/keras/pytorch tags: ubuntu, pytrch, keras, cudnn, cuda, tensroflow-gpu, AI, ML, DL, 環境 --- ## 目的 - 未來要使用建置在tensroflow或者pytorch上面的任何framework時,能使用GPU幫忙運算加速 ## 準備安裝項目 - pyenv (開發環境) - vscode (個人偏好的IDE) - cuda - cuda-toolkit - cudnn ### python需安裝套件 - keras (基於tensorflow 的高階 api) - tensorflow (AI framework有GPU版) - keras-bert (能使用keras來玩nlp的一個套件包) - bert-tensorflow (能使用tensorflow來玩nlp的一個套件包) - nltk (自然語言套件包 幫忙分析字詞的) - jieba (中文自然語言套件包 幫忙分析中文字詞的) - sklearn (Machine Learning 的套件包) - pytorch - pandas==0.22.0(版本記得是這個) - numpy ### pyenv 使用方法 `使用原因: python 有很多版本 很多套件 pyenv 可以建立不同pthon須環境 也可以在不同環境中安裝不同套件 難過的是 windows 沒有 pyenv 可以用 pyenv 開發者說他不用windows XD 以下是開發者的話` `I'm no longer using Windows. I don't like to waste my time with such thing.` - 安裝 - 再裝以前先將apt更新 - `sudo apt-get update` - git - pyenv有提供快速安裝 但要從git上載下來 所以先安裝git - `sudo apt install git` - 安裝curl - `sudo apt install curl` - 再來從 git 上把它拿下來 - `curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash` - 將產生出來的環境變量加入 ~/.bashrc 中 -  - 最後 reboot - 使用 - 可以使用 pyenv install 來安裝你所需要的python版本 - `pyenv install 3.6.8` 3.6.8 很穩定 [name=yeamao][time=2019] `如果install 不起來試試看輸入這行指令` ` sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev ` - 用 pyenv version 看目前版本 - 用 pyenv versions 看目前下載了那些版本 - 用 pyenv virtualenv `版本` `虛擬環境名` 創建虛擬的python 虛擬環境 - 你所建立的虛擬環境會在 .pyenv/version裡面 - 用 pyenv activate `虛擬環境名` 激活你的虛擬環境 - 用 pyenv deactivate 離還虛擬環境 - 用 pyenv uninstall `虛擬環境名` 刪掉你的虛擬環境 ## python 安裝 - 基本上由於會安裝蠻多套件的,會建議寫一個requirement.txt,然後再一次install完,之後需要的套件都寫在裡面,到另一個環境也可以直接使用這個 requirement.txt 安裝 ### 安裝套件前 - 先進入你的指定虛擬環境或者建立一個虛擬環境 `pyenv activate yeamao` ### keras - 在pip下來以下這兩個套件 `pip install keras` `pip install tensorflow` `pip install keras-bert` `pip install bert-tensorflow` - 這樣基本下來你就可以使用keras了 不過在這個階段會是使用cpu在run的 :::info keras 有支援bert 快速開發的話可以使用這個 `keras-bert` ::: ### nltk jieba `以上這兩個套件是自然語言分析裡面常會用到的工具,後者那個套件,針對中文文本斷詞有很好的效果` ### pandas numpy `以上這兩個工具,是非常好用的數據處理工具與科學運算工具` --- # GPU 部分 ### CUDA - 下載 CUDA-Toolkit 10.0 (目前的tensorflow最高支援到 cuda 10.0 你也可以試9.0) - 到cuda toolkit 10.0 archive 下載(dev local) (大約30min ~ 1hr) - 稍微更改一下你下載的檔案名字讓他短一點等等好執行(我改成 cuda.deb) - 使用dpkg將它安裝起來 - `sudo dpkg -i cuda.deb` - 指令完成後使用他產生的 commend 來安裝 (大概像`sudo apt-key add....`) - 然後在執行一次一開始的指令 - `sudo dpkg -i cuda.deb` - 更新一下你的apt - `sudo apt update` 更新時應該會看到 cuda 10 等等的資訊出現 - 再來就安裝cuda `sudo apt install cuda` - reboot - 下載 nvidia-cuda-toolkit `sudo apt install nvidia-cuda-toolkit` - reboot - 現在你可以使用 nvcc -V 與 stat cuda 應該會看到你目前的版本 - 你也可以使用 nvidia-smi來看看你是否已經裝了你的顯卡驅動 :::info ### 排解疑難 遇到情況 nvcc -V 的結果是 compilation tools, release 7.5 V7.5.17 stat cuda 指到的卻是 10.0 解決方法 到 /usr/local 把cuda整個砍掉,用以下指令建一個新的(我裝的是10.0版) `sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda` 去確認`cat /usr/local/cuda/version.txt`給你的東西是不是10.0(卻認為10.0版) 將以下的環境變數加入 ~/.bashrc中 `export PATH=/usr/local/cuda/bin:$PATH` `export LD_LIBRARY_PATH=/usr/local/cuda/lib64$LD_LIBRARY_PATH` `export CUDA_HOME=/usr/local/cuda` 最後 `source ~/.bashrc` 再去查看nvcc顯示的是否為正確版本 [參照連結](https://www.jianshu.com/p/6a6fbce9073f) ::: ### cudnn - 去nvidia官網將cudnn載下來 - 去Download解壓縮這個檔案 - 接下來參照官方網站的 -  [參照連結](https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html) ### GPU 使用 - pytorch - pytorch對於GPU環境十分友善 - 有指令叫torch.cuda() - 你也可以用這個連結來去試試看cuda與GPU是否成功在你的電腦使用[參考](https://blog.csdn.net/nima1994/article/details/83001910) - keras - keras是基於tensorflow的高階API,所以如果keras要使用GPU那就要將原本的tensorflow移除,然後重新安裝tensorflow-gpu ### 檢測 GPU - 透過print(tnesorflow.python.client.device_lib) 就會看到妳的tensorflow 正確抓到了GPU了 - 根據參考你也可以使用他的方法來抓抓看是否有使用到GPU [另外參考](https://blog.csdn.net/castle_cc/article/details/78389082) --- ### 額外加裝 Docker 由於Docker是個業界常用的工具,提供了一個很方便的虛擬環境來給你執行,而且docker也可以支援使用GPU,我們就順便把它裝起來吧 - 首先透過 `uname -a` 或者 `lsb_release -a` 是否為正確版本(目前我用ubuntu 16.04) - 再來先更新 `sudo apt-get update` - 安裝docker 過程中我使用了 ssl 確保安全 `sudo -ssl curl https://get.docker.com | sh` 直接下載docker官方的腳本下來安裝 - 你也可以透過apt-get安裝 `sudo apt-get install docker.io` - 透過 service docker status 來查看是否正確安裝
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up