2017最後一天的學習-TensorFlow
中午吃過飯後,家人都去午休了,我就躺在沙發上看電視,然後稀裡糊塗睡著了,突然自己問自己今天寫點什麼呢,然後在迷糊中突然想到了TensorFlow,好了,那今天就看看它吧。
之前寫過兩篇相關的:
什麼是TensorFlow,如果按照標準的官方說法,就是一個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫。資料流圖的概念稍後來講。
TensorFlow到底有多火呢,按照github 2016年的資料是29622個星,2017年這個數字飆升到了8萬多,毫無疑問,是2017年最閃亮的專案。
TensorFlow引起很多的關注和興趣,可能源自AlphaGo,因為都是來自Google Mind團隊。他們的關係非常緊密,可以說互相依存。
如果從我的理解來說,該怎麼解釋這個技術呢。我個人完全不懂圍棋的玩法,就班門弄斧說下圍棋的這個事情吧,可能很多是不對的,純是技術交流。以前的計算機模擬的基本都是窮舉的模型,比如有一個步驟有100種可能,那麼我就計算100次,每一次得到的結果可能都是侷限的,如果要看遠一些,那麼比如看到後面的5步的走法,按照這個方式理解,那就是100*100*100*100*100種可能性,這種方式結算的結果如果從整體來把握,幾乎是不可控的,因為圍棋裡的玩法不是一個固定的模式,不像你輸入一個資料,就立馬透過公式計算出一個結果一樣。所以說在各種不確定中找到確定的方案,而且能夠確定邊界,難度應該是相當的大,但是如果換一種思路,比如我把所有不同棋手的學習過程都借鑑過來,比如100個人下棋,在某一個階段下了某一步棋,對整個棋局都是有利,那麼計算機就會標記下來,算是學習了這個技巧,不斷的借鑑不斷的模仿,然後自我改進,這個過程必然會用的大量的資料和大量的計算,於是乎,各種經驗和技巧就不斷的迭代,不斷的抽象出來,所以說如果讓計算機來說某一步具體為什麼要那麼下,可能沒有一個很好的答案,但是它有大把的資料顯示這麼下一定是目前最好的方案,它會把經驗集合起來,而不去做最初窮舉的計算。
這方面的實力哪裡最強,個人認為還是矽谷,大學裡面佔據地理優勢的就是史丹佛了。今年十一去史丹佛的時候,真是被裡面的美景和文化氛圍吸引了,非常典型的西班牙建築特徵:紅陶筒瓦、手工抹灰牆、陶藝掛件、拱璇門廊。
大名鼎鼎的吳恩達就是史丹佛的教授,也在網易開通了機器學習的公開課,感興趣自行搜尋下。
下午的時候開始簡單瞭解了下,然後開始部署下環境。
TensorFlow的安裝可以分為不同的作業系統版本,最早是不支援windows的(現在的版本支援),在Unix,Linux下部署還是很方便的。它提供了大量的Python API,這是大多數深度學習框架都有的; 安裝時會根據CPU,GPU的差別有不同的安裝型別;目前推薦的作業系統是Ubuntu,不同的Python版本安裝也有差別。
我們透過網站()的目錄結構就很容易看到TensorFlow的大體情況,支援的平臺。
目前最新的版本是1.4,下載連結是:
我們可以根據pip來安裝,當然我任性了一會,在RedHat 6版本上安裝了,結果發現過程還是很痛苦的。
如果直接使用pip install --upgrade來安裝,很可能會提示網站的安全性問題,我們可以先用wget拿到whl檔案,然後使用pip install來安裝。
當然後面又碰到了一堆的問題,最鬱悶的就是glibc的版本相容性問題。在RHEL 6中的glibc版本是2.12,而在7中則為2.17,安裝TensorFlow需要的版本至少是2.16,所以在RHEL6版本中還需要手工升級,glibc算是核心庫,我們執行的命令ls,rm這些都和這個庫息息相關,所以操作不當就會導致整個系統不可用,我算是趟上了這個坑,當手工升級glibc的時候,發現到問題的時候,貌似有些晚了,因為ls,rm都可不用了,而我的虛擬機器上已經在跑一些測試環境了。有很多資料都沒來得及備份,我一邊想辦法,後悔沒完整備份,一邊在找補救措施,最後好不容易搞定,趕緊做了兩件事情:
-
備份認為關鍵的資料和程式
-
對虛擬機器開啟了快照,隨時跟進快照情況進行回退
有了這兩個保障,也算是有驚無險。
所以最好還是按照指定的環境,比如Ubuntu來吧。
所以如果說簡單些,TensorFlow就是個軟體庫,我們直接引用即可。
比如一個最簡單的TensorFlow程式,引入這個庫,然後這樣一個3+5的操作還得不到8
importtensorflowastf
a=tf.add(3,5)
print(a)
>>Tensor("Add: 0",shape=(),dtype=int32)
這是因為需要開啟session,在session中操作能夠被執行,簡單改進下:
import tensorflow as tf
a = tf.add(3, 5)
sess = tf.Session()
print(sess.run(a))
sess.close()
>> 8
看今天的晚會里面,已經有了全自動碼頭,看來各行各業都在革命,難啊。
走入IT路,也不容易。
用王家衛《一代宗師》裡的臺詞來簡單總結下:
從此只有眼前路,沒有身後身,回頭無岸來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2149786/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 函式: 獲得每月的最後一天函式
- script取一個月的最後一天
- crontab每月最後一天執行
- Oracle 取本週第一天,最後一天Oracle
- Tensorflow 學習
- 深度學習中tensorflow框架的學習深度學習框架
- js 獲取某月第一天和最後一天JS
- JavaScript獲取每個月最後一天的日期JavaScript
- JavaScript 獲取月份最後一天日期JavaScript
- SHELL指令碼每月最後一天判斷指令碼
- 深度學習的TensorFlow實現深度學習
- 學習HTML的第一天HTML
- tensorflow語法學習
- TensorFlow學習資源
- TensorFlow 學習筆記筆記
- 2018最後一天深夜總結
- GopherChina 大會早鳥票最後一天Go
- C#獲取當月第一天和最後一天C#
- TensorFlow與PyTorch之爭,哪個框架最適合深度學習PyTorch框架深度學習
- javascript獲取指定月份的最後一天例項程式碼JavaScript
- 【shell 指令碼】備份最後一天所有修改的檔案指令碼
- 學習 Tensorflow 的困境與解藥
- Python學習的第一天Python
- Oracle-獲取本週、本月、本季、本年的第一天和最後一天Oracle
- sqlserver時間函式獲取本月最後一天SQLServer函式
- 哪一個深度學習框架增長最迅猛?TensorFlow 還是 PyTorch?深度學習框架PyTorch
- 《深度學習之TensorFlow》pdf深度學習
- tensorflow學習之 Eager execution
- 深度學習之Tensorflow框架深度學習框架
- TensorFlow學習筆記(二)筆記
- tensorflow學習筆記3筆記
- Tensorflow學習筆記一筆記
- Tensorflow學習筆記二筆記
- go 第一天學習Go
- vue 第一天學習Vue
- 學習go第一天Go
- 學習HTML第一天HTML
- 學習java第一天Java