tensorflow利用CNN實(shí)現(xiàn)MNIST圖片識(shí)別

Function instructions

The data

  • Data: This is the classic mnist handwriting recognition image data.
  • Download link: this

Directory tree

├── __init__.py
├── __pycache__
│   └── base.cpython-37.pyc
├── base.py
├── base.pyc
├── data
│   ├── t10k-images-idx3-ubyte.gz
│   ├── t10k-labels-idx1-ubyte.gz
│   ├── train-images-idx3-ubyte.gz
│   └── train-labels-idx1-ubyte.gz
├── introduce.md
├── main.py
└── model
    ├── checkpoint
    ├── model.ckpt.data-00000-of-00001
    ├── model.ckpt.index
    └── model.ckpt.meta

def train(epoch)

def train(epoch):
    with tf.Session() as sess:
        # Run the initializer
        sess.run(init)

        # Loop over all batches
        for epoch in range(epoch):
            avg_cost = 0.
            total_batch = int(data.train.num_examples / 100)

            # Loop over all batches
            for i in range(total_batch):
                batch_x, batch_y = data.train.next_batch(100)

                # Run optimization op (backprop) and cost op (to get loss
                # value)
                _, c = sess.run([optimizer, loss], feed_dict={
                                X: batch_x, y: batch_y})

                avg_cost += c / total_batch

            # When epoch/1 == 0, display its
            if epoch % 1 == 0:
                print("Epoch: {}, cost:{:.9f}.".format(epoch + 1, avg_cost))
        print("Optimizer finished!")

        # Model path
        save_path = saver.save(sess, 'model/model.ckpt')
        print("Model save path---->{}".format(save_path))

def test()

def test():
    with tf.Session() as sess:
        # Load model
        saver.restore(sess, 'model/model.ckpt')

        # Test model
        correct_prediction = tf.equal(
            tf.argmax(
                prediction, 1), tf.argmax(
                y, 1))

        # Calculate accuracy
        accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

        # Output accuracy
        print("Accuracy: {:.2f}%".format(accuracy.eval(
            {X: data.test.images, y: data.test.labels}) * 100))

def main()

import argparse
def main():
    parser = argparse.ArgumentParser()
    # Parameter cannot be repeated
    group = parser.add_mutually_exclusive_group()
    group.add_argument(
        "--train",
        help="Starting training mnist",
        action="store_true")
    group.add_argument(
        "--test",
        help="Calculate accuracy",
        action="store_true")
    args = parser.parse_args()
    if args.train:
        base.train(50)
    elif args.test:
        base.test()
    else:
        args.format_usage()

Usage:

python main.py --train

You 'll see

Epoch: 1, cost:1465.749074652.
Epoch: 2, cost:358.950801634.
Epoch: 3, cost:215.583005248.
Epoch: 4, cost:143.596455115.
Epoch: 5, cost:100.857781702.
Epoch: 6, cost:72.147256477.
Epoch: 7, cost:51.398675599.
Epoch: 8, cost:36.388558753.
Epoch: 9, cost:25.647963873.
Epoch: 10, cost:18.697037627.
Epoch: 11, cost:14.011822952.
Epoch: 12, cost:11.864846532.
Epoch: 13, cost:9.678910431.
Epoch: 14, cost:8.239972835.
Epoch: 15, cost:7.259532100.
Epoch: 16, cost:6.497665578.
Epoch: 17, cost:5.505862782.
Epoch: 18, cost:5.848468989.
Epoch: 19, cost:6.275718566.
Epoch: 20, cost:4.614883631.
Epoch: 21, cost:3.559349296.
Epoch: 22, cost:4.711895169.
Epoch: 23, cost:4.970205748.
Epoch: 24, cost:3.949323646.
Epoch: 25, cost:3.361469757.
Epoch: 26, cost:4.426729311.
Epoch: 27, cost:3.666941071.
Epoch: 28, cost:2.743820582.
Epoch: 29, cost:3.947338344.
Epoch: 30, cost:2.897383927.
Epoch: 31, cost:3.100600044.
Epoch: 32, cost:3.383983951.
Epoch: 33, cost:3.303998014.
Epoch: 34, cost:2.977089446.
Epoch: 35, cost:2.814323372.
Epoch: 36, cost:3.331458229.
Epoch: 37, cost:2.389651632.
Epoch: 38, cost:1.903855870.
Epoch: 39, cost:3.342399193.
Epoch: 40, cost:3.074553787.
Epoch: 41, cost:2.701295445.
Epoch: 42, cost:2.231522787.
Epoch: 43, cost:2.611505464.
Epoch: 44, cost:1.872499419.
Epoch: 45, cost:2.452242370.
Epoch: 46, cost:2.270775151.
Epoch: 47, cost:2.393156816.
Epoch: 48, cost:1.931829598.
Epoch: 49, cost:1.763150141.
Epoch: 50, cost:2.725590840.
Optimizer finished!
Model save path---->model/model.ckpt

python main.py --test

You 'll see

Accuracy: 96.45%

License

MIT

Author: Shiyipaisizuo

Audit: Shiyipaisizuo

This (source code) is hosted on my git repo.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嘁扼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子不傅,更是在濱河造成了極大的恐慌辞友,老刑警劉巖留拾,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疫向,死亡現(xiàn)場(chǎng)離奇詭異搔驼,居然都是意外死亡糯耍,警方通過(guò)查閱死者的電腦和手機(jī)温技,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)恳蹲,“玉大人,你說(shuō)我怎么就攤上這事∫郧澹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)广恢。 經(jīng)常有香客問(wèn)我至非,道長(zhǎng)糠聪,這世上最難降的妖魔是什么睡蟋? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮枷颊,結(jié)果婚禮上戳杀,老公的妹妹穿的比我還像新娘该面。我一直安慰自己,他們只是感情好信卡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布隔缀。 她就那樣靜靜地躺著,像睡著了一般傍菇。 火紅的嫁衣襯著肌膚如雪猾瘸。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天丢习,我揣著相機(jī)與錄音牵触,去河邊找鬼。 笑死咐低,一個(gè)胖子當(dāng)著我的面吹牛揽思,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播见擦,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼钉汗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鲤屡?” 一聲冷哼從身側(cè)響起损痰,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酒来,沒(méi)想到半個(gè)月后卢未,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堰汉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年辽社,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衡奥。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爹袁,死狀恐怖远荠,靈堂內(nèi)的尸體忽然破棺而出矮固,到底是詐尸還是另有隱情,我是刑警寧澤譬淳,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布档址,位于F島的核電站,受9級(jí)特大地震影響邻梆,放射性物質(zhì)發(fā)生泄漏守伸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一浦妄、第九天 我趴在偏房一處隱蔽的房頂上張望尼摹。 院中可真熱鬧见芹,春花似錦、人聲如沸蠢涝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)和二。三九已至徘铝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惯吕,已是汗流浹背惕它。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留废登,地道東北人淹魄。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像钳宪,于是被迫代替她去往敵國(guó)和親揭北。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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