日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux16.04配置tensorflow(GPU源码编译)并深入了解tensorboard

發布時間:2023/12/15 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux16.04配置tensorflow(GPU源码编译)并深入了解tensorboard 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Tensorflow – Google推出的一個強大的“深度學習框架”。于2015年11月在GIthub上開源,在2016年4月補充了分布式版本,并于2017年1月發布了1.0版本的預覽,API接口趨于穩定。目前Tensorflow仍處于快速開發迭代過程中,有大量新功能及性能優化在持續研發中。Google開源Tensorflow的原因有:第一時希望通過社區的力量,讓大一起完善Tensorflow。現在看來,它已經達到了這個目的。作為一個最受熱捧的深度學框架,他已經吸引了眾多的愛好者和開發者。第二是回饋社區,Google希望讓這個優秀的工具得到更多的應用,從整體上提高學術界乃至工業界使用深度學習的效率。除了Tensorflow,Google還開源過大量的項目,包括移動操作系統Android、瀏覽器Chromium、編程語言Go、JavaScript引擎V8、數據交換框架Protobuf、編譯工具Bazel、OCR工具Tesseract等眾多項目。

Tensorflow 既是一個實現機器學習算法的接口,同時也是執行機器學習算法的框架。它前端支持Python、C++、Go、Java等多種開發語言,后端使用C++、CUDA等寫成。Tensorflow實現的算法可以在眾多異構的系統上方方便地移植,比如Andriod手機、iphone、普通的cpu服務器、乃至大規模GPU集群。除了執行深度學習算法,Tensorflow還可以用來實現很多其他的算法,包括線性回歸、邏輯回歸、隨機森林等。Tensorflow建立的大規模深度學習模型的應用場景也非常的廣泛,包括“語音識別”“自然語言處理(NLP)”“計算機視覺(CV)”“機器人控制”“信息抽取”“藥物研發”“分子活動預測”等,使用Tensorflow開發的模型也在這些領域獲得了最前沿的成果。

Tensorflow由一個重要的組件client,即客戶端,它通過Session的接口與master及多個worker相連。其中一個worker可以與多個硬件設備相連,比如CPU或GPU,并負責管理這些硬件。而master則負責指導所有worker按流程執行計算圖。Tensorflow有單機模式和分布式模式兩種實現,其中單機指client、master、worker全部在一臺機器上的同一進程中;分布式的版本允許client、master、worker在不同機器的不同進程中,同時由集群調度系統統一管理各項任務。

Tensorflow中的一個非常有用的工具是Tensorboard。Tensorboard時Tensorflow的一組Web應用,用來監控Tensorflow的運行過程,或進行可視化。Tensorboard目前支持5種可視化:標量(scalars)、圖片(images)、音頻(audio)、直方圖(histogram)和計算圖(Computation Graph)。Tensorboard的Events Dashboard可以用來持續地監控運行的關鍵指標,比如loss,accuracy,學習速率(lr)等眾多你需要觀察的變量。Image Dashboard則可以展示訓練過程中用戶設定保存的圖片,比如某個訓練中間結果用Matplotlib等繪制出來的圖片;Graph Explore則可以完全展示一個TensorFlow的計算圖,并且支持縮放拖拽和查看節點屬性。下面是Tensorborad的一些視圖。

初級面板

Embedding結果顯示

T-SNE

好了,下面開始“源碼編譯Tensorflow”
1. 首先你需要安裝CUDA和Cudnn,請查看我前面的Blog;

2. 獲得Tensorflow源碼; git clone https://github.com/tensorflow/tensorflow? 3. 解壓到指定的文件夾下: tar -zxvf xxx 4. 進入解壓后的Tensorflow主文件加下: cd xxx/tensorflow 5. 運行configure文件 ./configure 1) 定位python的安裝路徑,你可以使用默認路徑,輸入“y”即可;當然你也可以指定Python的路徑; 2) 是否支持GPU,由于我們安裝的是GPU版本,需要支持GPU,即輸入“y”; 3) 是否支持CUDA,由于我們之前成功安裝過CUDA,輸入“y”; 4) 確定gcc的版本,它會自動搜索當前Linux下的gcc,建議選擇“默認”即可,當然如果你的Linux安裝了多個gcc,你也可以指定具體的路徑和版本; 5)確定CUDA的版本,由于我們安裝的是CUDA8.0,即輸入“8.0”即可,這個需要你根據自己的CUDA版本進行選擇; 6)定位CUDA的路徑,建議選擇“默認”,如果你發現默認的路徑有問題,你可以設置自己的路徑,如/usr/local/xxx; 7) 確定Cudnn的版本,這個必須與Cuda對應,由于我們之前安裝的是v5.1版本的,輸入“5.1”或者選擇“默認”; 8)定位Cudnn的路徑,建議選擇“默認”或者指定安裝的路徑; 9)選擇GPU的計算能力,因為不同類型的GPU具有不同的計算能力,你需要根據你當前的GPU的類型查看它所對應的計算能力。這個需要你有一些GPU的基礎知識。 10)到此,configure完成。注: 1)這個過程需要很長的時間,需要你耐心等待。 2)配置過程與下圖類似,可能會有一些不同,但是基本一致。

6. 安裝bazel -- 谷歌開發的一個編譯器 1)下載一些依賴包 sudo apt-get install python-numpy swig python-dev python-wheel?? 7. 建立GPU支持 1)bazel build --copt=-march=native -c opt --config=cuda //tensorflow/tools/pip_package.build_pip_package 2) bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg 3) sudo pip install /tmp/tensorflow/tensorflow-1.0.0rc0-cp27-cp27m-linux_x86_64.whl注:這里我使用的是python2.7版本。如果你是其他版本,你需要做出一些修改。 8. 測試 ?bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu? 此程序會計算一個2*2矩陣的主特征值 輸出如下圖所示:

其實,Tensorflow支持多種安裝方式,你可以進行靈活的選擇,以下我簡單的介紹一下。 1. pip安裝 這是最簡單的一種方式,但是通常會在編譯代碼的過程中出現一些莫名其妙的錯誤,這種方式適合新手。 1) pip install tensorflow # python2.7 cpu版本 2) pip3 install tensorflow # python3.x cpu版本 3) pip install tensorflow-gpu # python2.7 gpu版本 4) pip3 install tensorflow-pu # python3.x gpu版本 2. Docker安裝 3. Anaconda安裝 4. virtualenv安裝

注:如果你想要采用其他的安裝方式,你可以點擊以下的連接,去tensorflow官網查看詳細的安裝過程,選擇一種你喜歡的方式進行安裝。總之,tensorflow官網提供的很詳細,遠遠超越了其它的深度學習框架。tensorflow各種安裝方式鏈接

好了,tensorflow的安裝到此結束,下面讓我們來說下tensorboard吧! 我在許多tensorflow的群里面看到大家對tensorboard的使用提出了很多的問題,很有必要在這里給大家說明一下。 tensorboard -- 一個必備的可視化工具,只要你使用過,你就會深深的喜歡上它。 1. 首先,讓我們來看看如何打開它吧。你需要在Linux命令行下面輸入以下命令: tensorboard --logdir=xxx 2. 打開瀏覽器,在網址處輸入以下內容: localhost:6006 或者 http://localhost:6006 注: 1--logdir用來指定需要可視化結果的具體路徑,這個參數是必須指定的。 2)在許多的tensorflow代碼中通常會利用FLAG標志來指定這個logdir,相信聰明的你已經發現啦。 3)這個我隨便打開了一個logdir路徑,命令行中顯示的結果如下圖所示: 4)tensorboard是在本地的瀏覽器上面運行,因此需要你打開瀏覽器,并指定localhost(當前主機host),聰明的你可能已經注意到了命令行中已經彈出來了這個指示啦。打開后的界面如下圖所示:

命令行中打開tensorboard

tensorboard登錄后的原始界面

2. 通過上面你已經知道如何在Linux下打開tensorboard,但是如何在Windows下打開tensorborad呢,這是許多人詢問的一個問題,我的解決方案如下所示,大家可以想一下,Linux的命令行執行的都是shell腳本,那么在Windows下面的類shell的東西是什么呢?對啦,就是它--cmd,具體內容請看下面。 1)點擊右下角的開始按鈕,輸入cmd,點擊“Enter”,會彈出如下的界面: 2)在“360瀏覽器”或者“谷歌瀏覽器”中輸入以下內容: localhost:6006 或者 http://localhost:6006注: 1)顯示的結果如下圖所示。 2)當然你可以在任意的瀏覽器上打開它,我這里僅僅測試啦360和Google瀏覽器。 3)是不是有些恍然大悟的感覺!

cmd中輸入:tensorboard –logdir=D:/XXX顯示結果(切換路徑)

cmd中輸入:tensorboard –logdir=D:/XXX顯示結果(未切換路徑)

利用360瀏覽器打開的tensorboard界面

利用Google瀏覽器打開的tensorboard界面

3. 好了,現在你會在Linux和Windows下面打開tensorboard啦,我們來展示一些結果吧!注:以下我會顯示不同部分的一些結果樣例。包括“scalars” “images” “histogram” “distribution”等。

scalars中顯示的loss結果:

graph中顯示的結果:

histogram中顯示某幅圖片結果:

T-SNE中顯示的結果:

image中顯示的結果:

4. 下面我將會教你在代碼中如何添加可視化 1) 首先,你需要知道以下的內容: tf.summary.scalar('命名', 需要可視化的張量) 如:tf.summary.scalar('accuarcy', accuarcy) 表示可視化accuray張量,并命名為accuarcy,它會保留每次迭代的結果,繪制出一個曲線圖。tf.summary.image('命名', 需要可視化的張量) 如:tf.summary.image('input', image_shaped_input, 10) 表示可視化輸入的圖片(image_shaped_input),并命名為input,并設置顯示的大小。tf.summary.histogram('命名', 需要可視化的張量) 如:tf.summary.histogram('histogram', var) 表示可視化var變量,并命名為histogram,如histogram中顯示的weights結果所示。 當然你也可以可視化audio,方法相同,如果你感興趣,請自己嘗試。 2)那么如何在代碼中添加他們呢? 首先你需要知道想要可視化哪些變量,并且確定需要可視化哪種類型的變量, 通常使用tf.summary.scalar來可視化“標量數據”; 使用tf.summary.histogram來可視化“變量數據”; 使用tf.summary.image來可視化“輸入、輸出或者中間層產生的圖像”; 使用tf.summary.audio用來可視化“語音”; 只要你在代碼中保存了checkpoint和meta文件,就可以就行可視化distribution和grapha啦。 3)使用代碼案例如下所示: with tf.name_scope('summary'): # 設置一個命名空間tf.summary.image('input', image, 10)tf.summary.scalar('max', value)tf.histogram('histogram', var)merge = tf.summary.merge_all() # 合并所有的summary操作 writer = tf.summary.FileWriter(log_dir, sess.grap) # 將summary寫到某個路徑下write.add_summary(summary) # 添加其他的summary write.close() # 關閉summarytensorboard --log_dir=xxx # 查看可視化的結果注: 1)以上我只是簡單的介紹了一個案例,大概的流程是這樣,你需要結合自己的工程去靈活的改變它們。這需要在實踐中進行積累。 2)一個很好的學習案例就是tensorflow官網提供的文件,具體的路徑如下所示:tensorflow-master/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py 我會提供給大家一個下載鏈接:

文件下載鏈接

這篇Blog應該結束啦。Tensorflow很全也很大,需要你長時間的去了解學習它,慢慢的解開它的神秘面紗,而且它已經應用到了手機上面,這是其他的深度框架遠遠不能及的。注: 1)由于個人能力有限,難免會有有些錯誤,希望大家能夠諒解; 2)關于本博客,如果你有任何問題都可以向我提問,我會及時的回復大家。 3)由于本博客是我的原創,如果想要轉載,希望你聯系我,我會及時的回復。 郵箱:1575262785@qq.com

總結

以上是生活随笔為你收集整理的Linux16.04配置tensorflow(GPU源码编译)并深入了解tensorboard的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。