tf1.基礎結構

Tensorflow 是谷歌開發的深度學習系統,用它可以很快速地入門神經網絡。
它可以做分類,也可以做擬合問題,就是要把這個模式給模擬出來。


這是一個基本的神經網絡的結構,有輸入層,隱藏層,和輸出層。
每一層點開都有它相應的內容,函數和功能。

那我們要做的就是要建立一個這樣的結構,然后把數據喂進去。
把數據放進去后它就可以自己運行,TensorFlow 翻譯過來就是向量在里面飛。



這個動圖的解釋就是,在輸入層輸入數據,然后數據飛到隱藏層飛到輸出層,用梯度下降處理,梯度下降會對幾個參數進行更新和完善,更新后的參數再次跑到隱藏層去學習,這樣一直循環直到結果收斂。

因為TensorFlow是采用數據流圖(data flow graphs)來計算, 所以首先我們得創建一個數據流流圖, 然后再將我們的數據(數據以張量(tensor)的形式存在)放在數據流圖中計算. 節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯系的多維數據數組, 即張量(tensor). 訓練模型時tensor會不斷的從數據流圖中的一個節點flow到另一節點, 這就是TensorFlow名字的由來.

張量(tensor):

張量有多種. 零階張量為 純量或標量 (scalar) 也就是一個數值. 比如 [1]
一階張量為 向量 (vector), 比如 一維的 [1, 2, 3]
二階張量為 矩陣 (matrix), 比如 二維的 [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
以此類推, 還有 三階 三維的 …

簡單線性預測例子

import sys
print(sys.version)
'''
3.5.3 |Continuum Analytics, Inc.| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)]
'''
import tensorflow as tf
import numpy as np

# shape=tuple ,size=100
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3 #實際值

Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))#[1],一個數,范圍從-1.0到1.0
biases = tf.Variable(tf.zeros([1]))#初始值0

y = Weights*x_data + biases#框架
loss = tf.reduce_mean(tf.square(y-y_data))#定義誤差(square平方)
#梯度下降法
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# init = tf.initialize_all_variables() # tf 馬上就要廢棄這種寫法
init = tf.global_variables_initializer()  # 替換成這樣就好
sess = tf.Session()
sess.run(init)          # Very important
for step in range(201):#訓練200次
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))#越來越接近真實w和b

輸出

0 [-0.01233229] [ 0.479366]
20 [ 0.04969411] [ 0.32581243]
40 [ 0.08435673] [ 0.30802673]
60 [ 0.09513554] [ 0.30249602]
80 [ 0.09848735] [ 0.30077615]
100 [ 0.09952962] [ 0.30024135]
120 [ 0.09985375] [ 0.30007505]
140 [ 0.09995452] [ 0.30002335]
160 [ 0.09998586] [ 0.30000728]
180 [ 0.09999558] [ 0.30000228]
200 [ 0.09999862] [ 0.30000073]
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 文|墨默 2016年的366個日子, 又累積了366天回憶。 在這2016年第366天, 即將塵封2016的史卷。...
    墨默天地閱讀 182評論 0 6
  • 常見的數據校驗方法 http://blog.csdn.net/ky_heart/article/details/5...
    用電熱毯烤豬閱讀 7,465評論 0 49
  • 我來自皖南農村。 割稻插秧砍田埂,采茶喂豬耙刺毛……只要你能想到的農村事,基本都干過。 初中每周五天只帶一次菜,兩...
    丁曉賢閱讀 1,230評論 0 0
  • AAC結構圖: 1.ADTS_header:ADTS包含著音頻的基本信息:采樣率、聲道數、幀長度......ADT...
    孫健會員閱讀 1,660評論 0 0
  • 想找個地方記錄下我的變化,看到群里小伙伴在使用,我今天也下載了簡書,文筆不好,僅以此來記錄下今年的改變
    雨下云閱讀 129評論 0 0