Ubuntu中配置TensorFlow使用環(huán)境的方法
一、TensorFlow簡介
TensorFlow™是一個基于數(shù)據(jù)流編程(dataflow programming)的符號數(shù)學系統(tǒng),被廣泛應(yīng)用于各類機器學習(machine learning)算法的編程實現(xiàn),其前身是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫DistBelief。
Tensorflow擁有多層級結(jié)構(gòu),可部署于各類服務(wù)器、PC終端和網(wǎng)頁并支持GPU和TPU高性能數(shù)值計算,被廣泛應(yīng)用于谷歌內(nèi)部的產(chǎn)品開發(fā)和各領(lǐng)域的科學研究。
TensorFlow由谷歌人工智能團隊谷歌大腦(Google Brain)開發(fā)和維護,擁有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在內(nèi)的多個項目以及各類應(yīng)用程序接口(Application Programming Interface, API)。自2015年11月9日起,TensorFlow依據(jù)阿帕奇授權(quán)協(xié)議(Apache 2.0 open source license)開放源代碼。
二、安裝Anaconda
Anaconda指的是一個開源的Python發(fā)行版本,其包含了conda、Python等180多個科學包及其依賴項。因為包含了大量的科學包,Anaconda 的下載文件比較大(約 531 MB),如果只需要某些包,或者需要節(jié)省帶寬或存儲空間,也可以使用Miniconda這個較小的發(fā)行版(僅包含conda和 Python)。
獲取Anaconda
在官網(wǎng)下載鏈接下載Python3.7版本的安裝包
下載好以后的文件是Anaconda3-2020.02-Linux-x86_64.sh
開始安裝
使用終端進入到保存Anaconda文件的目錄下,使用下面命令開始安裝
bash Anaconda3-2020.02-Linux-x86_64.sh
開始安裝后會讓咱們檢查Anaconda License,若想跳過,則按Q跳過,之后會詢問我們是否同意(Do you approve the license terms?),輸入yes
然后回車繼續(xù)
接下來會詢問咱們要把Anaconda安裝到哪個路徑,若有指定,輸入路徑并回車繼續(xù),若無指定,將會安裝到默認目錄家目錄,回車繼續(xù)。
等到下一個提示確定的時候,是問咱們要不要在~/.bashrc文件中加入環(huán)境變量,輸入yes
回車繼續(xù),等滾屏結(jié)束,咱們的Anaconda就安裝完畢了。
三、TensorFlow的兩個主要依賴包
Protocol Buffer
首先使用apt-get安裝必要組件
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
然后cd到合適的目錄使用git clone功能獲取安裝文件
$ git clone $ https://github.com/protocolbuffers/protobuf.git $ cd protobuf $ git submodule update --init --recursive $ ./autogen.sh
開始安裝
$ ./configure $ make $ make check $ sudo make install $ sudo ldconfig # refresh shared library cache.
在安裝結(jié)束后,使用如下命令,看到版本號則安裝成功
$ protoc --version
Bazel
安裝準備
在安裝Bazel之前,需要安裝JDK8,具體安裝方法請參考如下鏈接
jdk8安裝方法
然后安裝其他的依賴工具包
$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip
獲取Bazel
在發(fā)布頁面獲取bazel-0.4.3-jdk7-installer-linux-x86_64.sh
,
然后通過這個安裝包安裝Bazel
$ chmod +x bazel-0.4.3-jdk7-installer-linux-x86_64.sh $ ./bazel-0.4.3-jdk7-installer-linux-x86_64.sh --user
安裝完成后繼續(xù)安裝其他TensorFlow需要的依賴工具包
$ sudo apt-get install python3-numpy swig python3-dev python3-wheel
在完成后,在~/.bashrc中添加環(huán)境變量
export PATH"$PATH:$HOME/bin"
然后使用$ source ~/.bashrc
激活
然后在終端輸入bazel
出現(xiàn)版本號的話,則安裝成功。
四、安裝CUDA和cuDNN
如果計算機上有安裝NVIDIA的GPU并安裝驅(qū)動的話,可以使用CUDA和cuDNN進行GPU運算
CUDA
CUDA(Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平臺。 CUDA™是一種由NVIDIA推出的通用并行計算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計算問題。 它包含了CUDA指令集架構(gòu)(ISA)以及GPU內(nèi)部的并行計算引擎。 開發(fā)人員可以使用C語言來為CUDA™架構(gòu)編寫程序,C語言是應(yīng)用最廣泛的一種高級編程語言。所編寫出的程序可以在支持CUDA™的處理器上以超高性能運行。CUDA3.0已經(jīng)開始支持C++和FORTRAN。
獲取并安裝CUDA
在官網(wǎng)獲取合適版本的CUDA Toolkit安裝包
使用如下命令,安裝cuda
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin $ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb $ sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb $ sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub $ sudo apt-get update $ sudo apt-get -y install cuda
測試CUDA
在安裝完畢后要確認安裝情況就進入例子目錄進行編譯
$ cd /usr/local/sample $ make all
此時有可能編譯出錯,錯誤信息為提示找不到nvscibuf.h,就使用gedit工具打開Makefile文件,把第41行改為
FILTER_OUT := 0_Simple/cudaNvSci/Makefile
然后再次make all
進行編譯,編譯成功后后會提示Finished building CUDA samples
這時候進入/usr/local/cuda/extras/demo_suite
目錄下,找到deviceQuery
可執(zhí)行文件,并執(zhí)行,將會輸出GPU相關(guān)信息。
這是博主的GPU信息
CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GTX 1060 6GB" CUDA Driver Version / Runtime Version 10.2 / 10.2 CUDA Capability Major/Minor version number: 6.1 Total amount of global memory: 6075 MBytes (6370295808 bytes) (10) Multiprocessors, (128) CUDA Cores/MP: 1280 CUDA Cores GPU Max Clock rate: 1759 MHz (1.76 GHz) Memory Clock rate: 4004 Mhz Memory Bus Width: 192-bit L2 Cache Size: 1572864 bytes Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384) Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 2 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device supports Compute Preemption: Yes Supports Cooperative Kernel Launch: Yes Supports MultiDevice Co-op Kernel Launch: Yes Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 10.2, NumDevs = 1, Device0 = GeForce GTX 1060 6GB Result = PASS
此時,CUDA安裝完畢。
cuDNN(CUDA安裝完成時才可用)
NVIDIA cuDNN是用于深度神經(jīng)網(wǎng)絡(luò)的GPU加速庫。它強調(diào)性能、易用性和低內(nèi)存開銷。NVIDIA cuDNN可以集成到更高級別的機器學習框架中,如加州大學伯克利分校的流行caffe軟件。簡單的,插入式設(shè)計可以讓開發(fā)人員專注于設(shè)計和實現(xiàn)神經(jīng)網(wǎng)絡(luò)模型,而不是調(diào)整性能,同時還可以在GPU上實現(xiàn)高性能現(xiàn)代并行計算。
獲取cuDNN
在官網(wǎng)鏈接注冊完成并驗證郵箱后,點擊Download cuDNN
下載
記得在同意前面打勾勾~
現(xiàn)在最新版本的是CUDA 10.2,cuDNN 7.6.5.32,得到的文件是cudnn-10.2-linux-x64-v7.6.5.32.tgz
下載完畢后,進入下載目錄,使用如下命令進行解壓
$ tar -zxvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
會生成一個名為cuda
的文件夾,進入該文件夾
$ cd cuda
然后使用復(fù)制操作完成安裝
sudo cp lib64/libcudnn* /usr/local/cuda/lib64/ sudo cp include/cudnn.h /usr/local/cuda/include
操作完成后,進入cuDNN的目錄更新庫文件的軟鏈接
$ cd /usr/local/cuda/lib64 $ sudo chmod +r libcudnn.so.7.6.5 $ sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7 $ sudo ln -s libcudnn.so.7.6.5 libcudnn.so $ sudo ldconfig
若軟鏈接時報錯,則把-s改成-sf即可
接下來在~/.bashrc中添加環(huán)境變量
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:usr/local/cuda-10.2/extras/CUPTI/lib64:$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-10.2 export PATH=/usr/local/cuda-10.2/bin:$PATH
至此,CUDA與cuDNN安裝完成。
五、正式開始安裝TensorFlow
在開始安裝前,首先安裝pip
$ sudo apt-get install python3-pip python3-dev
在完成后輸入pip回車會輸出相關(guān)命令
Usage: pip <command> [options]
在pip安裝完成后,輸入如下命令開始安裝最新的TensorFlow。
$ pip install tensorflow
若無GPU,則安裝CPU版本TensorFlow
$ pip install tensorflow-cpu
安裝完成后,使用Python
測試第一個TensorFlow程序
$ python3
>>> import tensorflow as tf >>> tf.add(1, 2).numpy() 3 >>> hello = tf.constant('Hello, TensorFlow!') >>> hello.numpy() b'Hello, TensorFlow!'
有生成上述結(jié)果時,TensorFlow安裝成功。
至此,TensorFlow使用環(huán)境,安裝完成。
到此這篇關(guān)于Ubuntu中配置TensorFlow使用環(huán)境的方法的文章就介紹到這了,更多相關(guān)Ubuntu配置TensorFlow內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中urllib.request和requests的使用及區(qū)別詳解
這篇文章主要介紹了python中urllib.request和requests的使用及區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05python3 http提交json參數(shù)并獲取返回值的方法
今天小編就為大家分享一篇python3 http提交json參數(shù)并獲取返回值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12