TensorFlow 初級理解

近來由於業務的長遠性考慮,接觸到了一個叫作tensorflow的關於弱人工智能的開源框架,我之因此稱其爲「弱」人工智能的開源框架,是由於我本身以爲(哈哈)。java

http://www.tensorfly.cn/中文社區中有說道 tensorflow是一個採用數據流圖(data flow graphs),用於數值計算的開源軟件庫。那你們應該想到這個東西主要是算法設計,也便是算法模式的設計。node

tensorflow中已經內設了不少基本的數學上的計算函數,咱們只需按照api使用這些內置的函數進行運算使用獲得本身想到的結果便可。python

在此仍是想引用下中文社區的原話,由於我以爲寫的太好了。算法

關於 TensorFlow

TensorFlow™ 是一個採用數據流圖(data flow graphs),用於數值計算的開源軟件庫。節點(Nodes)在圖中表示數學操做,圖中的線(edges)則表示在節點間相互聯繫的多維數據數組,即張量(tensor)。它靈活的架構讓你能夠在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU),服務器,移動設備等等。TensorFlow 最初由Google大腦小組(隸屬於Google機器智能研究機構)的研究員和工程師們開發出來,用於機器學習和深度神經網絡方面的研究,但這個系統的通用性使其也可普遍用於其餘計算領域。編程

什麼是數據流圖(Data Flow Graph)?

數據流圖用「結點」(nodes)和「線」(edges)的有向圖來描述數學計算。「節點」 通常用來表示施加的數學操做,但也能夠表示數據輸入(feed in)的起點/輸出(push out)的終點,或者是讀取/寫入持久變量(persistent variable)的終點。「線」表示「節點」之間的輸入/輸出關係。這些數據「線」能夠輸運「size可動態調整」的多維數據數組,即「張量」(tensor)。張量從圖中流過的直觀圖像是這個工具取名爲「Tensorflow」的緣由。一旦輸入端的全部張量準備好,節點將被分配到各類計算設備完成異步並行地執行運算。api

 

既然有線和點,是否是想起來flowable了(壞笑),天然咱們就能獲取到某個點的函數算法。數組

官方文檔中在給初學者的引導學習中用了「驗證碼數字識別」這個例子解釋了,tensorflow在作這件事情的時候是怎麼實現的,具體內容在此不做詳細說明,有興趣的能夠本身看官方文檔。大體講的是經過一種設計思路來不斷的學習這些數字,而後比對數字類似度來判斷是哪一個數字,固然類似度的值計算方式也不做說明了 ,這是tensorflow的一種學習能力。服務器

經過這個初級的例子,咱們知道一下幾點:網絡

  1. 要設計一個模型也就是model,這個model通常會保存在哪一個目錄下面。咱們經過api的方式,好比java打開這個model,而後就能夠傳入初始節點的初始數據,產出最終模型產出的結果。
  2. 模型設計採用的是python編寫的調用saver 保存。
  3. 若是想經過其餘編程語言使用,能夠經過api方式首先把model加載進來。
  4. 支持文件讀寫和基本的經常使用類型數據。

如上,受本人能力限制可能有表述或者自己理解不對的地方,歡迎你們批評指正,本人也會不斷的學習,不斷的修正。架構

嘮了那麼多,手都渴了,去洗洗手,繼續擼代碼。

相關文章
相關標籤/搜索