tensorflow(入門) 手寫數(shù)字識(shí)別示例

手寫數(shù)字識(shí)別

讀取數(shù)據(jù)

from tensorflow.examples.tutorials.mnist import input_data
# 下載到本地讀取
Folder="C:\\Users\\data_set\\mnist"
mnist=input_data.read_data_sets(Folder,one_hot=True)
Extracting C:\Users\wycmg\data_set\mnist\train-images-idx3-ubyte.gz
Extracting C:\Users\wycmg\data_set\mnist\train-labels-idx1-ubyte.gz
Extracting C:\Users\wycmg\data_set\mnist\t10k-images-idx3-ubyte.gz
Extracting C:\Users\wycmg\data_set\mnist\t10k-labels-idx1-ubyte.gz

打印圖片數(shù)據(jù)

print("輸入數(shù)據(jù):",mnist.train.images)
print("輸入數(shù)據(jù)打印shape:",mnist.train.images.shape)

import pylab
im=mnist.train.images[1]
im=im.reshape(28,28)
pylab.imshow(im)
pylab.show()

輸入數(shù)據(jù): [[0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 ...
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]]
輸入數(shù)據(jù)打印shape: (55000, 784)
image

對(duì)模型進(jìn)行訓(xùn)練

import tensorflow as tf

tf.reset_default_graph()

#1.定義相關(guān)占位符與變量 

#none 表示這個(gè)張量可以是任意長(zhǎng)度
x=tf.placeholder(tf.float32,[None,784])
y=tf.placeholder(tf.float32,[None,10])


W=tf.Variable(tf.random_normal([784,10]))
b=tf.Variable(tf.zeros([10]))

#2.定義softmax分類器
pred=tf.nn.softmax(tf.matmul(x,W)+b)

#3.定義損失loss函數(shù)
cost=tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred),reduction_indices=1))

learn_rate=0.001

#4.定義反向函數(shù)
optmizer=tf.train.GradientDescentOptimizer(learn_rate).minimize(cost)

#定義模型保存模塊
saver=tf.train.Saver()
model_path="C:\\Users\\data_set\\model_data\\mnist_"

training_epochs=20
batch_size=10
display_step=1

#5. 執(zhí)行
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    
    for epoch in range(training_epochs):
        
        avg_cost=0
        total_batch=int(mnist.train.num_examples/batch_size)
        
        for i in range(total_batch):
            
            batch_xs,batch_ys=mnist.train.next_batch(batch_size)
            _,c=sess.run([optmizer,cost],feed_dict={x:batch_xs,y:batch_ys})
            avg_cost+=c /total_batch
            
        if(epoch+1) %display_step ==0:
            print ("Epoch:",epoch+1,"cost=",avg_cost)
            correct_prediction=tf.equal(tf.arg_max(pred,1),tf.arg_max(y,1))
            accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
            
    result=accuracy.eval({x:mnist.test.images,y:mnist.test.labels})
    print(result)
        
    
    
    
    save_path=saver.save(sess,model_path)
    print("finished!")
Epoch: 1 cost= 8.413311454686244
Epoch: 2 cost= 4.410791150022635
Epoch: 3 cost= 3.0637753695886247
Epoch: 4 cost= 2.4290291727850604
Epoch: 5 cost= 2.0619775535859675
Epoch: 6 cost= 1.821569282016206
Epoch: 7 cost= 1.6503578068904448
Epoch: 8 cost= 1.5217377204902018
Epoch: 9 cost= 1.421281917459415
Epoch: 10 cost= 1.3402216639686553
Epoch: 11 cost= 1.2731331290722487
Epoch: 12 cost= 1.2163815390107657
Epoch: 13 cost= 1.1678666297287905
Epoch: 14 cost= 1.1254484797060027
Epoch: 15 cost= 1.0881764416870119
Epoch: 16 cost= 1.0549061655528351
Epoch: 17 cost= 1.025181390150768
Epoch: 18 cost= 0.9982583443079888
Epoch: 19 cost= 0.9735374023460215
Epoch: 20 cost= 0.9512753867549311
0.8127
finished!
##讀取模型時(shí)必須還原定義的占位符以及變量 

print("strating Session2")


tf.reset_default_graph()
#none 表示這個(gè)張量可以是任意長(zhǎng)度
x=tf.placeholder(tf.float32,[None,784])
y=tf.placeholder(tf.float32,[None,10])


W=tf.Variable(tf.random_normal([784,10]))
b=tf.Variable(tf.zeros([10]))

pred=tf.nn.softmax(tf.matmul(x,W)+b)


cost=tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred),reduction_indices=1))

learn_rate=0.001

optmizer=tf.train.GradientDescentOptimizer(learn_rate).minimize(cost)

saver1=tf.train.Saver()
model_path="C:\\Users\\data_set\\model_data\\mnist_"

with tf.Session() as sess2:
   
    sess2.run(tf.global_variables_initializer())
    
    
    
    saver1.restore(sess2,model_path)
    
    correct_prediction=tf.equal(tf.arg_max(pred,1),tf.arg_max(y,1))
    accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
    result=accuracy.eval({x:mnist.test.images,y:mnist.test.labels})
    print(result)
    
    
    output=tf.argmax(pred,1)
    batch_xs,batch_ys=mnist.train.next_batch(2)
    outputval=sess2.run(output,feed_dict={x:batch_xs,y:batch_ys})
    print(outputval,batch_ys)
    
    import pylab
    im=batch_xs[0]
    im=im.reshape(28,28)
    pylab.imshow(im)
    pylab.show() 
    
    im=batch_xs[1]
    im=im.reshape(28,28)
    pylab.imshow(im)
    pylab.show()
    
strating Session2
INFO:tensorflow:Restoring parameters from C:\Users\wycmg\data_set\model_data\mnist_
0.8127
[5 1] [[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]]
圖片1
圖片2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绰精,隨后出現(xiàn)的幾起案子汁针,更是在濱河造成了極大的恐慌,老刑警劉巖济榨,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異绿映,居然都是意外死亡擒滑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門叉弦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丐一,“玉大人,你說我怎么就攤上這事淹冰】獬担” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵樱拴,是天一觀的道長(zhǎng)柠衍。 經(jīng)常有香客問我洋满,道長(zhǎng),這世上最難降的妖魔是什么珍坊? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任牺勾,我火速辦了婚禮,結(jié)果婚禮上阵漏,老公的妹妹穿的比我還像新娘驻民。我一直安慰自己,他們只是感情好履怯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布回还。 她就那樣靜靜地躺著,像睡著了一般叹洲。 火紅的嫁衣襯著肌膚如雪柠硕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天运提,我揣著相機(jī)與錄音蝗柔,去河邊找鬼。 笑死糙捺,一個(gè)胖子當(dāng)著我的面吹牛诫咱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播洪灯,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼坎缭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了签钩?” 一聲冷哼從身側(cè)響起掏呼,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铅檩,沒想到半個(gè)月后世囊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體果漾,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虹菲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片订歪。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玛迄,死狀恐怖卵沉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情乒疏,我是刑警寧澤额衙,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響窍侧,放射性物質(zhì)發(fā)生泄漏县踢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一伟件、第九天 我趴在偏房一處隱蔽的房頂上張望硼啤。 院中可真熱鬧,春花似錦锋爪、人聲如沸丙曙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扯旷,卻和暖如春拯爽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钧忽。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工毯炮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耸黑。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓桃煎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親大刊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子为迈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355