當前位置:編程學習大全網 - 源碼下載 - Mnist源代碼

Mnist源代碼

首先妳需要看看妳的PC配置夠不夠。TF的GPU模式只支持N卡,然後算力高於3.0。詳情請查看:

安裝教程可以參考:

在Ubuntu16.04上安裝gtx1080的Cuda

七月17 2016

tensorflow是目前非常流行的深度學習計算框架,常規硬件和系統的安裝方法在官方doc中已經說的很清楚了,但是因為系統是ubuntu16.04,顯卡是GTX1080,所以難免要折騰壹下。在上壹篇文章中已經在16.04上安裝了驅動程序。其實下壹步就是裝CUDA和cuDNN了。

首先,為什麽要裝CUDA和cuDNN?benchmark可以發現GPU計算比CPU快多少。這次的重點是如何讓tensorflow充分利用GTX1080的能力。具體是如何安裝支持GTX1080的CUDA和cuDNN,然後讓tensorflow了解我們新安裝的CUDA和cuDNN。

首先,安裝步驟如下:

1必須先註冊NVIDIA開發者的賬號,分別下載CUDA和cuDNN。

2確認準備gcc版本並安裝依賴庫sudo apt-get install freegl。

3安裝CUDA

4解壓cuDNN

5克隆tensorflow源代碼,配置配置

6編譯和安裝

7最後的顫抖,考驗!

準備工作/即將開始工作

在正式開始之前,我們需要做壹些準備工作,主要是先看看文件。

cuda常見問題

tensorflow安裝文檔

Cuda-gpu支持列表/計算能力/常見問題

cudnn 5.1有多牛逼?

Cuda tookit下載頁面

CUDA _安裝_指南_Linux.pdf

cudnn用戶指南

閱讀文檔後,下壹步是實際動手操作過程:

1註冊英偉達開發者的賬號,分別下載CUDA和cuDNN。

1.1下載cuda打開CUDA工具包下載頁面。GTX1080用的是CUDA 8。首先單擊“加入”註冊您的帳戶。之後,返回cuda工具包下載頁面。選擇Linux,x86-64,Ubuntu,16.04,運行文件(本地)。

1.2下載cuDNN進入cudnn的下載頁面,壹堆調查,寫日誌的時候下載【下載cud nn V5(2065 438+06年5月27日),針對CUDA 8.0 RC】,點開linux,不出意外的話這是下載地址。

2確認GCC版本並安裝依賴庫。

確認本機gcc版本。16.04的默認版本是gcc 5,這裏的最高安裝要求是gcc 4.9。接下來,安裝並配置gcc 4.9。

2.1安裝gcc 4.9,並將系統默認修改為4.9。

sudo apt-get安裝gcc-4.9 gcc-4.9 g++-4.9 g++-4.9

gcc版本

sudo更新-替代項-install/usr/bin/g++ g++/usr/bin/g++-4.9 10

sudo更新-替代項-install/usr/bin/cc cc/usr/bin/gcc 30

sudo更新-替代項-設置cc /usr/bin/gcc

sudo更新-替代選項-install/usr/bin/c++ c++/usr/bin/g++ 30

sudo更新-替代項- set c++ /usr/bin/g++

gcc版本

2.2小依賴性

sudo apt-get安裝免費

3安裝CUDA

需要註意的是,這個地方有選擇安裝低版本驅動的地方。選擇N的壹般安裝過程如下:

3.1安裝CUDA

chmod?+x /cuda_8.0.27_linux.run

。/cuda_8.0.27_linux.run

....

妳接受以前讀過的EULA嗎?

接受/拒絕/退出:接受

安裝NVIDIA加速顯卡驅動Linux-x86_64 361.62?

(y)es/(n)o/(q)uit: n

安裝CUDA 8.0工具包?

(y)es/(n)o/(q)uit: y

輸入工具包位置

[默認為/usr/local/cuda-8.0 ]:

妳想在/usr/local/cuda安裝壹個符號鏈接嗎?

(y)es/(n)o/(q)uit: y

安裝CUDA 8.0示例?

(y)es/(n)o/(q)uit: y

輸入CUDA樣本位置

[默認為/home/h]:/home/h/Documents/cuda _ samples

....

3.2編寫環境變量

vim ~/。bashrc

#添加以下變量

導出路徑=/usr/local/cuda-8.0/bin $ { PATH:+:$ { PATH } }

導出LD _ LIBRARY _ PATH =/usr/local/cuda-8.0/lib 64 $ { LD _ LIBRARY _ PATH:+:$ { LD _ LIBRARY _ PATH } }

3.3安裝後的簡單驗證

A.進入cuda sample所在的文件夾,NVIDIA_CUDA-8.0_Samples/

b.CD 0 _ Simple/async API;sudo make

c.NVIDIA _ CUDA-8.0 _ Samples/0 _ Simple/async API $。/asyncAPI [。/asyncAPI] -正在啟動… GPU設備0:“GeForce GTX 1080”具有計算能力6.1 CUDA設備[GeForce GTX 1080]GPU執行所花費的時間:10.94 CPU在CUDA調用中所花費的時間:0.19 CPU在等待GPU完成時執行了50591次叠代

4安裝cuDNN

h @ h:~/下載$ tar xvzf cud nn-8.0-Linux-x64-v 5.0-ga . tgz

cuda/include/cudnn.h

cuda/lib64/libcudnn.so

cuda/lib64/libcudnn.so.5

cuda/lib64/libcudnn.so.5.0.5

cuda/lib64/libcudnn_static.a

h @ h:~/Downloads $ sudo CP-R cuda/lib 64/usr/local/cuda/lib 64

h @ h:~/Downloads $ sudo mkdir-p/usr/local/cuda/include

h @ h:~/Downloads/cuda $ sudo CP include/cud nn . h/usr/local/cuda/include/

sudo chmod a+r/usr/local/cuda/include/cud nn . h/usr/local/cuda/lib 64/libcudnn *

5克隆,配置張量流

5.1克隆源代碼

$ git克隆

5.2配置配置

整個配置過程應該基本和下面壹樣。

h@h:~/Downloads/tensorflow$ cd。/tensorflow/

h@h:~/Downloads/tensorflow$。/配置

請指定python的位置。[默認為/usr/bin/python]:

* * *是否希望在Google雲平臺支持下構建TensorFlow?[是/否]否***

TensorFlow不會啟用Google雲平臺支持

* * *您希望使用GPU支持構建TensorFlow嗎?[y/N] y***

將為TensorFlow啟用GPU支持

請指定哪個gcc nvcc應該用作主機編譯器。[默認為/usr/bin/gcc]:

* *請說明CUDA的位置?工具包已安裝。有關更多詳細信息,請參考README.md。[默認為/usr/local/cuda]:/usr/local/cuda-8.0 * *

* *請指定您要使用的Cudnn版本。[留空以使用系統默認值]: 5.0.5**

* *請指定cuDNN 5.0.5庫的安裝位置。有關更多詳細信息,請參考README.md。[默認為/usr/local/cuda-8.0]:/usr/local/cuda * *

請指定壹個以逗號分隔的Cuda計算功能列表,您希望使用這些功能進行構建。

您可以在以下網址找到您設備的計算能力:

* *請註意,每增加壹項計算能力都會顯著增加您的構建時間和二進制文件大小。

[默認值為:“3.5,5.2”]:6.1 * *

設置Cuda包括

設置Cuda lib64

設置Cuda bin

設置Cuda nvvm

設置CUPTI包括

設置CUPTI lib64

配置完成

6編譯和安裝

6.1編譯器Bazel安裝配置?

先看看文件?然後執行以下過程:

#安裝java 1.8

sudo add-apt-repository PPA:webupd 8 team/Java

sudo apt-get更新

sudo apt-get安裝oracle-java8-installer

#安裝後,參考汽車。

java版本

#添加信號源

echo " deb[arch = amd64]stable JDK 1.8 " | sudo tee/etc/apt/sources . list . d/bazel . list

curl | sudo apt-鍵添加-

#下載

sudo apt-get更新& amp& ampsudo apt-get install bazel

#升級

sudo apt-get升級bazel

6.2編譯並安裝tensorflow的pip版本。

$ bazel build-c opt//tensor flow/tools/pip _ package:build _ pip _ package

#在GPU支持下構建:

$ bazel build-c opt-config = cuda//tensor flow/tools/pip _ package:build _ pip _ package

$ bazel-bin/tensor flow/tools/pip _ package/build _ pip _ package/tmp/tensor flow _ pkg

#的名稱。whl文件將取決於您的平臺。

#註意編譯後生成的文件名不壹定和正式文檔中的壹致。

$ sudo pip install/tmp/tensor flow _ pkg/tensor flow-0。*-linux_x86_64.whl

I6700k 32g編譯時間:

不使用pipinfo編譯代碼:耗時:967.438+0s,關鍵路徑:538.38s

bazel-bin/tensor flow/tools/pip _ package/build _ pip _ package信息:耗時:65.183s,關鍵路徑:48.58

7最終測試

前面全做完了,現在該測試了。註意前面有兩個動態鏈接庫的位置,cuDNN在/usr/local/cuda/lib64,cuda在/usr/local/cuda-8.0/lib64,所以此時的bashrc應該寫成這樣:

導出路徑=/usr/local/cuda-8.0/bin $ { PATH:+:$ { PATH } }

導出LD _ LIBRARY _ PATH =/usr/local/cuda/lib 64:/usr/local/cuda-8.0/lib 64 $ { LD _ LIBRARY _ PATH:+:$ { LD _ LIBRARY _ PATH } }

寫完後,

來源~/。bashrc

CD tensor flow/tensor flow/models/image/mnist

python卷積. py

如果妳成功了,就會有平穩的運行:

h @ h:~/Downloads/tensor flow/tensor flow/models/image/mnist $ python convolatile . py

I tensor flow/stream _ executor/DSO _ loader . cc:108]在本地成功打開CUDA庫libcublas.so

I tensor flow/stream _ executor/DSO _ loader . cc:108]在本地成功打開CUDA庫libcudnn.so.5.0.5

I tensor flow/stream _ executor/DSO _ loader . cc:108]在本地成功打開CUDA庫libcufft.so

I tensor flow/stream _ executor/DSO _ loader . cc:108]在本地成功打開CUDA庫libcuda.so.1

I tensor flow/stream _ executor/DSO _ loader . cc:108]在本地成功打開CUDA庫libcurand.so

提取數據/訓練圖像-idx3-ubyte.gz

提取數據/列車標簽-idx1-ubyte.gz

提取數據/t 10k-images-idx 3-ubyte . gz

正在提取數據/t 10k-labels-idx 1-ubyte . gz

I tensor flow/stream _ executor/cuda/cuda _ GPU _ executor . cc:925]從SysFS成功讀取的NUMA節點具有負值(-1),但必須至少有壹個NUMA節點,因此返回NUMA節點零

I tensor flow/core/common _ runtime/GPU/GPU _ init . cc:102]找到具有以下屬性的設備0:

名稱:GeForce GTX 1080

主要:6次要:1內存時鐘頻率(GHz) 1.8475

pciBusID 0000:01:00.0

總內存:7.92千兆字節

可用內存:7.41GiB

I tensor flow/core/common _ runtime/GPU/GPU _ init . cc:126]DMA:0

I tensor flow/core/common _ runtime/GPU/GPU _ init . cc:136]0:?Y

I tensorflow/core/common _ runtime/GPU/GPU _ device . cc:838]創建tensor flow設備(/GPU:0)-& gt;(設備:0,名稱:GeForce GTX 1080,pci總線id: 0000:01:00.0)

已初始化!

第0步(紀元0.00),8.4毫秒

迷妳批次損失:12.054,學習率:0.010000

小批量誤差:90.6%

驗證誤差:84.6%

......

小批量誤差:0.0%

驗證誤差:0.7%

步驟8500(紀元9.89),4.7毫秒

迷妳批次損失:1.601,學習率:0.006302

小批量誤差:0.0%

驗證誤差:0.9%

測試誤差:0.8%

  • 上一篇:請問高手,什麽是網站關鍵詞,如何設置
  • 下一篇:IOS觸摸事件
  • copyright 2024編程學習大全網