TensorFlow入門--基本概念的理解

                                                                       TensorFlow 人工智能引擎 入門教程之一 基本概念以及理解
摘要: 首先先介紹一些TensorFlow這個框架 ,他是谷歌開源的第二代人工智能引擎,現在已經支持分佈式訓練,重要的是它兼容Caffe 訓練的模型 ,可以相互轉化 ,支持移動平臺 等各種環境,使用方便快捷,特別是創建DNN CNN LSTM 很快 很方便。學習之前希望大家對python 語法有比較好的瞭解,這一章節 只講一下 他的基本概念。

首先大家看2 張圖片   在0.8版本時候已經支持分佈式了 ,所以未來的發展 方面 人工智能的趨勢 不可擋,而且個人也是非常喜歡caffe 以及 tensorFlow 的我創業 用的就用到了它。

   



       下面我們來講一下 學習tensorFlow要了解的基礎知識。 

 首先安裝方面 很簡單 

      

  

ubuntu 下  pip install 這裏 知識安裝普通的0.5版本,如果需要最新版 看github上最新的0.8版本

安裝好了 就可以開始使用了 

      首先 1.tensorflow  = tensor + flow = ndarray + dag圖(網絡)

也就是說 通過 每一個 有向圖 dag 把每一步操作op 連接起來  傳遞 輸入 輸出都是一個nd array 多維數組(numpy) 然後在tensorFlow的回話中進行計算操作,

      1.佔位符

       

x = tf.placeholder(tf.float32, [None, 10])
y = tf.placeholder("float")
z = tf.placeholder(tf.int32)

  佔位符表示當OP 操作進行時候傳遞進來的過程,,也就是 feed 餵養 給予操作,所以 需要外部傳遞過來,比如訓練圖像時候

  X 爲圖像數據 Y爲圖像標籤,這樣的時候 X Y 都是來自訓練測試數據,所以前面需要定義2個用來傳遞的佔位符來傳遞X Y 

  feed 需要傳遞 python中的 tuple元祖 feed_dict={x: xdata, y: ydata} ,當執行op操作時候 feed傳入替換 ,執行完後銷燬

  

   這裏上面 第二個參數 shape 表示約束維度  比如 shape=(1024,1024) 就是約束爲1024 行 1024列的二維數組 

   如果shape=(None,1024) None 是python中的空值 ,表示 可以任何維度行的 1024列的二維數組

   2.變量 

     在tensorFlow 一些隨時用來計算 變化 操作 共享的量, 我們知道OP 操作 在python傳遞的是ndarray多維數組 C++中就是tensorFlow的tensor類,多維數組在tensorFlow表示就是變量 

  

 w = tf.Variable(0.0, name="weights")
 b=  tf.Variable (tf.zeros([100]),name="bias")

  Variable第一個參數 表示 初始化的值 ,比如w 初始化爲0 這樣 w 在後面的過程中會一直變化,下次可能獲取w時候是w=xxx 某個值,在tensorFlow中這種 可以通過fetch 也就是當需要獲得 傳遞 某個最新的w 時候 可以 session.run([w]) ,這時候   傳遞的w 就是每次最新變化的最新的w

   如果有時候需要常量 使用

   

 k = tf.constant(3.0#表示定義一個值爲3.0的常量

       

   3.Session 回話

     TensorFlow  通過回話 進行 連接 操作 執行所有的op(操作)形成一個有向圖,進行執行運行 圖計算 graph compute

     每一個回話 的 只要有變量存在的情況 網絡圖  第一個bottom都是 initop 也就是初始化變量

    

init = tf.initialize_all_variables()
with tf.Session() as session:
   session.run(init)#1.第一個圖的節點op   
   session.run(googlenet)#2.第二個圖的節點op 1-2-n
   sess.close()#釋放資源

類似於ipython一樣 有交互式 的

InteractiveSession交互式回話session

 

sess = tf.InteractiveSession()

  





TensorFlow =  tensor (多維數組) + flow (graph 圖 op)  session回話上下文管理   variable == tensor(多維數據變量)

placeholder == 外部傳入的參數變量  

下面看看官方文檔上的一個例子

 這裏numpy 其實 tensor 二維數組就是numpy中的ndarrary

 tf.random_uniform 可以見api手冊 就是隨機的生成均勻分佈的 一些-1 1 之間的shape 爲1 2的二維數組

GradientDescentOptimizer 表示訓練時候使用梯度下降來優化 ,還有很多優化策略。

   


 這一章都是基礎概念 。後面 可能 要去工作了,時間不是那麼有空,週末 可能 有空纔會更新 ,後面章節我們來使用 tensorFow 來定一個 深度學習網絡DNN 以及 卷積神經網絡CNN .我創業 就到了TensorFlow  所以放心 tensorFlow 我還是比較瞭解的至少可以熟練使用吧,也許很多地方有些不足,請見諒 下面我們使用運行 測試 看看。

這裏 提一下 就是因爲上面有中文,所以在前面加上coding 讓他utf-8 這是python基礎知識

  

 運行結果

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章