第一篇:機器學習工具---tensorflow

-----2017年1月24

溯洄從之,道阻且長。溯游從之,宛在水中央。

--------------------------

tensorflow是google的deepMind團隊貢獻的開源工具。其開源代碼可以在github

上找到。tensorflow不僅僅是一個機器學習工具,同時還提供有相應(yīng)的demo和教程。這也是我想寫關(guān)于tensorflow總結(jié)的原因: 希望可以把有用的東西自己消化一下,并作出總結(jié)。以后會不間斷的更新文章。

--------------------------------

tensorflow 不止是一面

1. 從tensorflow的目錄入手了解tensorflow

個人認為如果想要很好和某人相處,一定要了解他的脾氣和性格。這句話對待計算機的工具語言依然使用,因此我們有必要去了解一下github下面的tensorflow的目錄結(jié)構(gòu)。


圖1-tensorflow的根目錄結(jié)構(gòu)

我們發(fā)現(xiàn)在github下面其實tensorflow的版本還是比較多的,有master版本、r0.12版本,r0.11版本。但是一般默認使用的master版本。在這里有必要說明一下這些版本名稱的意義以及區(qū)別。

如圖2所示:


?圖2- github下面的版本

master 版本一般指的是最近更新的版本

r0.XXX這種版本一般是發(fā)行版本的代號(r代表released:發(fā)布、發(fā)行的意思)。該版本意味“最終版本”,在前面版本的一系列測試版之后,終歸會有一個正式版本,是最終交付用戶使用的一個版本。該版本有時也稱為標準版。一般情況下,Release不會以單詞形式出現(xiàn)在軟件封面上,取而代之的是符號(R)。有關(guān)發(fā)行版本的代號可以的明明規(guī)則參見軟件發(fā)布版本區(qū)別介紹

由于每個一段時間會有較大的變化, 這個較大變化出現(xiàn)之后會將現(xiàn)有改變的版本發(fā)布出來,這就使得我們看到了r0.8,r0.12。。。。等諸多的版本。

========》 了解軟件發(fā)布版本規(guī)則,尤其是開源軟件的版本,對于學習和掌握開源軟件尤為重要。這個不難理解: 假如你在github上面要安裝tensorflow,同時按照tensorflow的安裝說明文檔執(zhí)行之后發(fā)現(xiàn)并不能正常的安裝(很多情況下 是由于你下載的是master版本,而教程上用的是發(fā)行版本),或者你發(fā)現(xiàn)你的tensorflow缺少的很多API (這也有可能是你tensorflow版本過時,而你使用的程序使用的較新的tensorflow)


同時master 這個和branch 之間的關(guān)系有涉及到團隊開發(fā)方面,在此不再細說。(想了解的同學可以看看關(guān)于svn 與git 方面的知識)


接下來,我們看到了tensorflow目錄、third_partytools等等目錄,這些 目錄在個github上面都有說明的。簡單的介紹一下這些目錄里面一般會放置什么樣的文件?

tensorflow?這個目錄下面一般存放與tensorflow有關(guān)的文件。

third_party?與tools 自不必多說。

我是從tensorflow/example目錄開始閱讀的。因此下一張會以example里面的demo 一一分析并同時給出所使用的API 的使用說明。


2. 從tensorflow的概念

其實這一方面應(yīng)該是先入為主的,先介紹一下tensorflow:

TensorFlow 是一個采用數(shù)據(jù)流圖(data flow graphs),用于數(shù)值計算的開源軟件庫。節(jié)點(Nodes)在圖中表示數(shù)學操作,圖中的線(edges)則表示在節(jié)點間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,即張量(tensor)。

在以上的描述中我們引入了兩個個概念: 數(shù)據(jù)流圖、張量

數(shù)據(jù)流圖

什么事張量(tensor)?

關(guān)于tensor的概念可以參考wiki : https://en.wikipedia.org/wiki/Tensor

當然知乎給出的答案更加容易理解,這里給出鏈接https://www.zhihu.com/question/20695804

里面的有大神的詳細解答。

我個人認為可以暫時將張量(tensor)和矩陣(matrix)近似看待。

矩陣(matrix)相當于二維的tensor , 向量(vector)相當于一維的tensor,[1]?, [2]


什么是數(shù)據(jù)流圖(Data Flow Graph)?

數(shù)據(jù)流圖用“結(jié)點”(nodes)和“線”(edges)的有向圖來描述數(shù)學計算?!肮?jié)點” 一般用來表示施加的數(shù)學操作,但也可以表示數(shù)據(jù)輸入(feed in)的起點/輸出(push out)的終點,或者是讀取/寫入持久變量(persistent variable)的終點?!熬€”表示“節(jié)點”之間的輸入/輸出關(guān)系。這些數(shù)據(jù)“線”可以輸運“size可動態(tài)調(diào)整”的多維數(shù)據(jù)數(shù)組,即“張量”(tensor)。張量從圖中流過的直觀圖像是這個工具取名為“Tensorflow”的原因。一旦輸入端的所有張量準備好,節(jié)點將被分配到各種計算設(shè)備完成異步并行地執(zhí)行運算。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評論 25 709
  • 1. 介紹 首先讓我們來看看TensorFlow! 但是在我們開始之前,我們先來看看Python API中的Ten...
    JasonJe閱讀 11,981評論 1 32
  • 目標:獲得貼近自然的,充滿陽光的寬敞的空間可以分享的,能提供溫暖和放松的空間;想要獲得時間充裕去做自我成長與助人的...
    糖雪球球2閱讀 153評論 0 0
  • “世界上最糟糕的事情之一 是覺得自己配不上喜歡的那個人 就像彼此站在下雨的屋檐 你不能上前說一句“一起走吧” 因為...
    素墨Y閱讀 568評論 0 0
  • 當我們在雕刻的時候,雕刻鼻子時首先選擇粗略的定型,眼睛先開一個小口,之后再根據(jù)人的面貌特點對其表情進行修改...
    芮字十三畫啊閱讀 389評論 0 1

友情鏈接更多精彩內(nèi)容