TensorFlow官方文件學習(一)

2021-08-28 05:10:50 字數 2586 閱讀 3635

乙個對手寫數字進行識別的模型。

思路:1、將訓練集中獲取的手寫數字影象進行某一統一方式(全部按行或全部按列)的展開,得到乙個長向量(這是為了利用softmax做一維的回歸,不過損失了二維資訊),用乙個二維張量來索引某乙個樣本中的某一畫素。

2、softmax模型:用來給不同的物件分配概率(即使在更精細的模型中,最後一步,往往也需要用softmax來分配概率

兩步:① 加權求和,並引入偏置

對於給定輸入x,其代表影象為數字i的證據為

e vi

denc

ei=∑

i(wi

,jxj

)+bi

evidence_i=∑_i(w_x_j)+b_i

eviden

cei​

=∑i​

(wi,

j​xj

​)+b

i​② 用softmax函式將evidence轉換成概率,即

y =s

oftm

ax(e

vide

nce)

y=softmax(evidence)

y=soft

max(

evid

ence

)將輸入值當成冪指數求值,再正則化這些結果

更緊湊的寫法為 y=s

oftm

ax(w

x+b)

y=softmax(wx+b)

y=soft

max(

wx+b

)3、為了節省在python外使用別的語言進行複雜矩陣運算帶來的開銷,tensorflow做出的優化為,先用描述一系列可互動的操作,最後統一放在python外執行。

佔位符placeholder來描述這些可互動的單元:

import tensorflow as tf

x=tf.placeholder(tf.float32,[none,784])

變數variable來表示權重和偏置:

w=tf.variable(tf.zeros([784,10]))

b=tf.variable(tf.zeros([10]))

則模型可以用以下**實現:

y=tf.nn.softmax(tf.matmul(x,w)+b)
4、模型訓練

用交叉熵(cross-entropy)來評判模型的好壞,其表示式為

h y′

(y)=

−∑iy

i′lo

g(yi

)h_(y)=-∑_iy_i'log(y_i)

hy′​(y

)=−∑

i​yi

′​lo

g(yi

​)其中y是**的概率分布,y』是實際的概率分布(即訓練集對應的真實標籤,是乙個one-hot vector)

定義

y_=tf.placeholder(tf.float32,[none,10])
計算交叉熵

cross_entropy=-tf.reduce_sum(y_*tf.log(y))
tensorflow可以自動利用反向傳播演算法,根據選擇的優化器來最小化你的目標函式

train_step=tf.train.gradientdescentoptimizer(0.01).minimize(cross_entropy)
5、訓練準備

初始化操作

init=tf.initialize_all_variables
tensorflow是在乙個session中啟動模型

sess=tf.session()

sess.run(init)

6、開始訓練

for i in range(1000)

batch_xs,batch_ys=mnist.train.next_batch(100)

sess.run(train_step,feed_dict=)

此為隨機梯度下降訓練,每次訓練隨機抓取訓練集中的100個資料作為乙個batch

7、模型評估

tf.argmax給出物件在某一維度上最大值所對應的索引值,可以用來判斷**是否準確,即

correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
equal函式返回布林值,用cast函式轉化為浮點數後求均值來計算正確率

accuracy=tf.reduce_mean(tf.cast(correct_prediction,"float"))
8、計算學習到的模型在訓練集上的準確率

print sess.run(accuracy,feed_dict=)

TensorFlow官方文件學習(二)

開啟anaconda prompt activate tensor flow python import tensorflow as tf hello tf.constant hello s tf.session print s.run hello b hello 此處hello為utf 8編碼?列...

TensorFlow 官方文件中文版

打個不太恰當的比喻,如今 google 對待 tensorflow 系統,有點類似於該公司對待旗下移動作業系統 android。如果更多的資料科學家開始使用 google 的系統來從事機器學習方面的研究,那麼這將有利於 google 對日益發展的機器學習行業擁有更多的主導權。google tenso...

深度學習框架TensorFlow 官方文件中文版

使用 tensorflow,你必須明白 tensorflow tensorflow 是乙個程式設計系統,使用圖來表示計算任務.圖中的節點被稱之為 op operation 的縮寫 乙個 op 獲得 0 個或多個 tensor 執行計算,產生 0 個或多個 tensor 每個 tensor 是乙個型別...