tensorflow的學習筆記–初步認識tensorflow

  • 2020 年 1 月 21 日
  • 筆記

幾個概念

TensorFlow是一個基於數據流編程(dataflow programming)的符號數學系統,被廣泛應用於各類機器學習(machine learning)演算法的編程實現,由Google公司開發並開源免費使用。

在接觸到的智慧機器中,我們都需要先輸入一段抽象的數據(語音,圖片等),然後機器識別結果,輸出我們想要的內容。

在機器誕生的前期,需要對機器進行訓練和學習,使他有能力去認識識別的樣本,然後由樣本來預測其他的結果。

tensorflow中使用張量代表數據(可以簡單理解為參數),使用計算圖來搭建神經網路,使用會話執行計算圖,優化對應的權重。

首先我們先介紹張量:

  • 張量 多維數組和列表。對於不同維數的張量有不同的名稱和表示方法: 標量: 一個數字,比如:1,2,3 向量: 一個數組,[1,2,3] 矩陣: 二位數組,[[1,2],[1,3],[2,3]] 張量: 多維數組

tensorflow的數據的類型很多,與日常編程的數據類型也有點相似之處,先不一一介紹,先看看怎麼使用tensorflow(使用pip命令安裝對應的依賴模組)

import tensorflow as ts    a=ts.constant([1.0,2.0])# 定義常數  b=ts.constant([3.0,4.0])    result=a+b  print(result)

列印結果:Tensor("add:0", shape=(2,), dtype=float32)

add表示節點名 0 第0個輸出 shape 維度 (2,)一維數組,長度為2 dtype 數據類型

從上面的列印結果可以看出,result不是一個具體的結果,而是一個具體的計算過程。

簡單的模型

看一個簡單的數據模型

其中:Y=XW=w_1x_1+w_2x_2

具體使用tensorflow實現程式碼如下:

import tensorflow as ts    x=ts.constant([[1.0,2.0]])# 一行兩列  w=ts.constant([[3.0],[4.0]]) # 兩行一列    y=ts.matmul(x,w)  print(y)  

列印結果:Tensor("MatMul:0", shape=(1, 1), dtype=float32)

獲得運算結果

計算圖的值,需要用到sesion,具體程式碼:

import tensorflow as ts    x=ts.constant([[1.0,2.0]])  w=ts.constant([[3.0],[4.0]])    y=ts.matmul(x,w)    with ts.Session() as sess:      print(sess.run(y))

列印結果:[[11.]]

具體的執行過程是:(1.02.0)(3.04.0)=1∗3+2∗4=11