1.MNIST

前言

一般機(jī)器學(xué)習(xí)框架都使用MNIST作為入門(mén)闺魏。就像"Hello World"對(duì)于任何一門(mén)編程語(yǔ)言一樣堡妒,要想入門(mén)機(jī)器學(xué)習(xí)搀庶,就先要掌握MNIST锯仪。

筆者在學(xué)習(xí)的時(shí)候Tensorflow已經(jīng)成為十分流行的機(jī)器學(xué)習(xí)框架泵督,網(wǎng)上有大量的“資源”,但是大多都限于皮毛卵酪。
很多教程就是給你一段代碼然后隨便講兩句幌蚊,這樣對(duì)新手并不友好谤碳。
因此我萌生了寫(xiě)一個(gè)詳解的想法溃卡。
筆者是一名網(wǎng)絡(luò)工程在讀大學(xué)生,知識(shí)水平有限蜒简,未必能做到面面俱到且處處正確瘸羡,如有錯(cuò)誤請(qǐng)指出。

源代碼

  • 訓(xùn)練集
    請(qǐng)點(diǎn)擊此處下載搓茬。
    提取碼:xgpy
  • 源代碼
    在源代碼同一目錄下新建文件夾“訓(xùn)練集”犹赖,把百度云連接里面的.gz文件放入該文件夾。
# -*- coding: utf-8 -*-
import tensorflow as tf
import input_data
mnist = input_data.read_data_sets('./訓(xùn)練集', one_hot=True)


'''
    #構(gòu)建運(yùn)算圖
'''
# X Y 都是占位符 占位而已 不表示具體的數(shù)據(jù) 
x = tf.placeholder("float",[None,784]) # 圖像的大小為784;None表示第一個(gè)維度可以是任意長(zhǎng)度

# 一個(gè)Variable代表一個(gè)可修改的張量,它們可以用于計(jì)算輸入值卷仑,也可以在計(jì)算中被修改
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))

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

# 計(jì)算交叉熵
y_ = tf.placeholder("float", [None,10])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))

# 梯度下降算法(gradient descent algorithm)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

# 在運(yùn)行計(jì)算之前峻村,我們需要添加一個(gè)操作來(lái)初始化我們創(chuàng)建的變量:
init = tf.global_variables_initializer()

# 在一個(gè)Session里面啟動(dòng)我們的模型,并且初始化變量:
sess = tf.Session()
sess.run(init)

# 訓(xùn)練模型1000次
for i in range(1000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})



correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))  
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
#print('-**-',accuracy,type(accuracy))

print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

詳解

這一大段代碼實(shí)現(xiàn)的功能是:
建立 y = w*x+b 的模型锡凝,其中x是輸入的
可以直觀的看到粘昨,以上代碼分為三部分:構(gòu)建圖、定義會(huì)話、啟動(dòng)圖张肾。

構(gòu)建圖

構(gòu)建圖也分為定義變量芭析、定義交叉熵、定義優(yōu)化方法吞瞪。

  • 定義變量
    由定義方法分類馁启,本實(shí)例中主要有兩種變量。
    第一類是由tf.Variable()定義的w芍秆、b
    第二類是由tf.placeholder()定義的y_惯疙、x
    順帶提一句y = tf.nn.softmax(tf.matmul(x,W) + b)是這兩者結(jié)合起來(lái)的。
    那么這兩類有什么區(qū)別呢妖啥?
    一般而言螟碎,Varibale主要用來(lái)保存tensorflow圖中的一些結(jié)構(gòu)中的參數(shù),如本例中的w權(quán)重迹栓,b偏置掉分。需要初始化。
    plceholder主要用來(lái)把要訓(xùn)練/測(cè)試的數(shù)據(jù)輸入模型克伊,每次訓(xùn)練plceholder都有不一樣的值酥郭。在Session.run(feed_dict={})中的參數(shù)確定實(shí)際的值。

可視化網(wǎng)頁(yè)

https://www.cs.ryerson.ca/~aharley/vis/fc/
https://www.cs.ryerson.ca/~aharley/vis/conv/flat.html
https://poloclub.github.io/cnn-explainer/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末愿吹,一起剝皮案震驚了整個(gè)濱河市不从,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌犁跪,老刑警劉巖椿息,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異坷衍,居然都是意外死亡寝优,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)枫耳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乏矾,“玉大人,你說(shuō)我怎么就攤上這事迁杨∽晷模” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵铅协,是天一觀的道長(zhǎng)捷沸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)狐史,這世上最難降的妖魔是什么痒给? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任坯钦,我火速辦了婚禮,結(jié)果婚禮上侈玄,老公的妹妹穿的比我還像新娘婉刀。我一直安慰自己,他們只是感情好序仙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布突颊。 她就那樣靜靜地躺著,像睡著了一般潘悼。 火紅的嫁衣襯著肌膚如雪律秃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天治唤,我揣著相機(jī)與錄音棒动,去河邊找鬼。 笑死宾添,一個(gè)胖子當(dāng)著我的面吹牛船惨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缕陕,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼粱锐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了扛邑?” 一聲冷哼從身側(cè)響起怜浅,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔬崩,沒(méi)想到半個(gè)月后恶座,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沥阳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年跨琳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沪袭。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡湾宙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出冈绊,到底是詐尸還是另有隱情,我是刑警寧澤埠啃,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布死宣,位于F島的核電站,受9級(jí)特大地震影響碴开,放射性物質(zhì)發(fā)生泄漏毅该。R本人自食惡果不足惜博秫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眶掌。 院中可真熱鬧挡育,春花似錦、人聲如沸朴爬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)召噩。三九已至母赵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間具滴,已是汗流浹背凹嘲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留构韵,地道東北人周蹭。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疲恢,于是被迫代替她去往敵國(guó)和親谷醉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容