Tensorflow神經網路基礎結構

2021-12-29 21:19:48 字數 2427 閱讀 1456

tensorflow 是谷歌開發的深度學習系統,用它可以很快速地入門神經網路。

它可以做分類,也可以做擬合問題,就是要把這個模式給模擬出來。

這是乙個基本的神經網路的結構,有輸入層,隱藏層,和輸出層。

每一層點開都有它相應的內容,函式和功能。

那我們要做的就是要建立乙個這樣的結構,然後把資料喂進去。

把資料放進去後它就可以自己執行,tensorflow 翻譯過來就是向量在裡面飛。

這個**的解釋就是,在輸入層輸入資料,然後資料飛到隱藏層飛到輸出層,用梯度下降處理,梯度下降會對幾個引數進行更新和完善,更新後的引數再次跑到隱藏層去學習,這樣一直迴圈直到結果收斂。

因為tensorflow是採用資料流圖(data flow graphs)來計算, 所以首先我們得建立乙個資料流流圖, 然後再將我們的資料(資料以張量(tensor)的形式存在)放在資料流圖中計算. 節點(nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯絡的多維資料陣列, 即張量(tensor). 訓練模型時tensor會不斷的從資料流圖中的乙個節點flow到另一節點, 這就是tensorflow名字的由來.

張量有多種. 零階張量為 純量或標量 (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]

Tensorflow卷積神經網路

卷積神經網路 convolutional neural network,cnn 是一種前饋神經網路,在計算機視覺等領域被廣泛應用.本文將簡單介紹其原理並分析tensorflow官方提供的示例.關於神經網路與誤差反向傳播的原理可以參考作者的另一篇博文bp神經網路與python實現.卷積是影象處理中一種...

Tensorflow 深層神經網路

維基百科對深度學習的定義 一類通過多層非線性變換對高複雜性資料建模演算法的合集.tensorflow提供了7種不同的非線性啟用函式,常見的有tf.nn.relu,tf.sigmoid,tf.tanh.使用者也可以自己定義啟用函式.3.1.1 交叉熵 用途 刻畫兩個概率分布之間的距離,交叉熵h越小,兩...

Tensorflow(三) 神經網路

1 前饋傳播 y x w1 b1 w2 b2 import tensorflow as tf x tf.constant 0.9,0.85 shape 1,2 w1 tf.variable tf.random normal 2,3 stddev 1,seed 1 name w1 w2 tf.vari...