import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import mnist_inference
import os
BATCH_SIZE = 100
LEARNING_RATE_BASE = 0.8
LEARNING_RATE_DECAY = 0.99
REGULARIZATION_RATE = 0.0001
TRAINING_STEPS = 30000
MOVING_AVERAGE_DECAY = 0.99
MODEL_SAVE_PATH = "MNIST_model/"
MODEL_NAME = "mnist_model"
def train(mnist):
# 定義輸入輸出placeholder愁铺。
x = tf.placeholder(tf.float32, [None, mnist_inference.INPUT_NODE], name='x-input')
y_ = tf.placeholder(tf.float32, [None, mnist_inference.OUTPUT_NODE], name='y-input')
regularizer = tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE)
y = mnist_inference.inference(x, regularizer)
global_step = tf.Variable(0, trainable=False)
# 定義損失函數(shù)、學(xué)習(xí)率吗讶、滑動(dòng)平均操作以及訓(xùn)練過程既忆。
variable_averages = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY, global_step)
variables_averages_op = variable_averages.apply(tf.trainable_variables())
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1))
cross_entropy_mean = tf.reduce_mean(cross_entropy)
loss = cross_entropy_mean + tf.add_n(tf.get_collection('losses'))
learning_rate = tf.train.exponential_decay(
LEARNING_RATE_BASE,
global_step,
mnist.train.num_examples / BATCH_SIZE, LEARNING_RATE_DECAY,
staircase=True)
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)
with tf.control_dependencies([train_step, variables_averages_op]):
train_op = tf.no_op(name='train')
# 初始化TensorFlow持久化類漱凝。
saver = tf.train.Saver()
with tf.Session() as sess:
tf.global_variables_initializer().run()
for i in range(TRAINING_STEPS):
xs, ys = mnist.train.next_batch(BATCH_SIZE)
_, loss_value, step = sess.run([train_op, loss, global_step], feed_dict={x: xs, y_: ys})
if i % 1000 == 0:
print("After %d training step(s), loss on training batch is %g." % (step, loss_value))
saver.save(sess, os.path.join(MODEL_SAVE_PATH, MODEL_NAME), global_step=global_step)
def main(argv=None):
mnist = input_data.read_data_sets("../5.2.1/tmp/data", one_hot=True)
train(mnist)
if __name__ == '__main__':
main()
mnist優(yōu)化模型train
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門抡驼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肿仑,你說我怎么就攤上這事致盟。” “怎么了尤慰?”我有些...
- 文/不壞的土叔 我叫張陵馏锡,是天一觀的道長。 經(jīng)常有香客問我伟端,道長杯道,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任责蝠,我火速辦了婚禮党巾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霜医。我一直安慰自己齿拂,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布肴敛。 她就那樣靜靜地躺著署海,像睡著了一般。 火紅的嫁衣襯著肌膚如雪医男。 梳的紋絲不亂的頭發(fā)上砸狞,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼飘哨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起琐凭,我...
- 序言:老撾萬榮一對情侶失蹤芽隆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后统屈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胚吁,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年愁憔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腕扶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站秋茫,受9級特大地震影響史简,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肛著,卻給世界環(huán)境...
- 文/蒙蒙 一圆兵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧枢贿,春花似錦殉农、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至危队,卻和暖如春聪建,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背茫陆。 一陣腳步聲響...
- 正文 我出身青樓挥下,卻偏偏與公主長得像揍魂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子棚瘟,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- Nginx+FPM結(jié)構(gòu)模型剖析及優(yōu)化 隨著php腳本語言使用的普及现斋,目前webserice服務(wù)大部分都在用ngin...
- 歡迎來到小于的王者地盤,小于已經(jīng)更新了王者峽谷74位英雄(女媧教學(xué)已經(jīng)上線)全新的推薦出裝以及銘文搭配章咧,大家關(guān)注小...
- 深度模型中的優(yōu)化 1. 神經(jīng)網(wǎng)絡(luò)中的優(yōu)化挑戰(zhàn) 1.1 病態(tài) ??病態(tài)問題一般被認(rèn)為存在于神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中倦西。病態(tài)體...
- MNIST數(shù)據(jù)集是一個(gè)入門級的計(jì)算機(jī)視覺數(shù)據(jù)集,它包含各種手寫數(shù)字照片赁严,它也包含每一張圖片對應(yīng)的標(biāo)簽扰柠,告訴我們這是...
- 今天是倒計(jì)時(shí)第三十一天,我已禁足在家九天了疼约。 常言說樂極生悲耻矮,真還在我身上給應(yīng)驗(yàn)了。那天看望小孫孫——狗蛋后忆谓,興沖...