最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型

 更新時間:2020年02月13日 11:10:46   作者:Sebastien23  
這篇文章主要為大家詳細介紹了Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型的具體代碼,供大家參考,具體內(nèi)容如下

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
 
INPUT_NODE = 784  # 輸入層節(jié)點=圖片像素=28x28=784
OUTPUT_NODE = 10  # 輸出層節(jié)點數(shù)=圖片類別數(shù)目
 
LAYER1_NODE = 500  # 隱藏層節(jié)點數(shù),只有一個隱藏層
BATCH_SIZE = 100  # 一個訓(xùn)練包中的數(shù)據(jù)個數(shù),數(shù)字越小
          # 越接近隨機梯度下降,越大越接近梯度下降
 
LEARNING_RATE_BASE = 0.8   # 基礎(chǔ)學(xué)習(xí)率
LEARNING_RATE_DECAY = 0.99  # 學(xué)習(xí)率衰減率
 
REGULARIZATION_RATE = 0.0001  # 正則化項系數(shù)
TRAINING_STEPS = 30000     # 訓(xùn)練輪數(shù)
MOVING_AVG_DECAY = 0.99    # 滑動平均衰減率
 
# 定義一個輔助函數(shù),給定神經(jīng)網(wǎng)絡(luò)的輸入和所有參數(shù),計算神經(jīng)網(wǎng)絡(luò)的前向傳播結(jié)果
def inference(input_tensor, avg_class, weights1, biases1,
       weights2, biases2):
 
 # 當(dāng)沒有提供滑動平均類時,直接使用參數(shù)當(dāng)前取值
 if avg_class == None:
  # 計算隱藏層前向傳播結(jié)果
  layer1 = tf.nn.relu(tf.matmul(input_tensor, weights1) + biases1)
  # 計算輸出層前向傳播結(jié)果
  return tf.matmul(layer1, weights2) + biases2
 else:
  # 首先計算變量的滑動平均值,然后計算前向傳播結(jié)果
  layer1 = tf.nn.relu(
    tf.matmul(input_tensor, avg_class.average(weights1)) +
    avg_class.average(biases1))
  
  return tf.matmul(
    layer1, avg_class.average(weights2)) + avg_class.average(biases2)
 
# 訓(xùn)練模型的過程
def train(mnist):
 x = tf.placeholder(tf.float32, [None, INPUT_NODE], name='x-input')
 y_ = tf.placeholder(tf.float32, [None, OUTPUT_NODE], name='y-input')
 
 # 生成隱藏層參數(shù)
 weights1 = tf.Variable(
   tf.truncated_normal([INPUT_NODE, LAYER1_NODE], stddev=0.1))
 biases1 = tf.Variable(tf.constant(0.1, shape=[LAYER1_NODE]))
 
 # 生成輸出層參數(shù)
 weights2 = tf.Variable(
   tf.truncated_normal([LAYER1_NODE, OUTPUT_NODE], stddev=0.1))
 biases2 = tf.Variable(tf.constant(0.1, shape=[OUTPUT_NODE]))
 
 # 計算前向傳播結(jié)果,不使用參數(shù)滑動平均值 avg_class=None
 y = inference(x, None, weights1, biases1, weights2, biases2)
 
 # 定義訓(xùn)練輪數(shù)變量,指定為不可訓(xùn)練
 global_step = tf.Variable(0, trainable=False)
 
 # 給定滑動平均衰減率和訓(xùn)練輪數(shù)的變量,初始化滑動平均類
 variable_avgs = tf.train.ExponentialMovingAverage(
   MOVING_AVG_DECAY, global_step)
 
 # 在所有代表神經(jīng)網(wǎng)絡(luò)參數(shù)的可訓(xùn)練變量上使用滑動平均
 variables_avgs_op = variable_avgs.apply(tf.trainable_variables())
 
 # 計算使用滑動平均值后的前向傳播結(jié)果
 avg_y = inference(x, variable_avgs, weights1, biases1, weights2, biases2)
 
 # 計算交叉熵作為損失函數(shù)
 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)
 
 # 計算L2正則化損失函數(shù)
 regularizer = tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE)
 regularization = regularizer(weights1) + regularizer(weights2)
 
 loss = cross_entropy_mean + regularization
 
 # 設(shè)置指數(shù)衰減的學(xué)習(xí)率
 learning_rate = tf.train.exponential_decay(
   LEARNING_RATE_BASE,
   global_step,              # 當(dāng)前迭代輪數(shù)
   mnist.train.num_examples / BATCH_SIZE, # 過完所有訓(xùn)練數(shù)據(jù)的迭代次數(shù)
   LEARNING_RATE_DECAY)
 
 
 # 優(yōu)化損失函數(shù)
 train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(
   loss, global_step=global_step)
 
 # 反向傳播同時更新神經(jīng)網(wǎng)絡(luò)參數(shù)及其滑動平均值
 with tf.control_dependencies([train_step, variables_avgs_op]):
  train_op = tf.no_op(name='train')
 
 # 檢驗使用了滑動平均模型的神經(jīng)網(wǎng)絡(luò)前向傳播結(jié)果是否正確
 correct_prediction = tf.equal(tf.argmax(avg_y, 1), tf.argmax(y_, 1))
 accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
 
 
 # 初始化會話并開始訓(xùn)練
 with tf.Session() as sess:
  tf.global_variables_initializer().run()
  
  # 準(zhǔn)備驗證數(shù)據(jù),用于判斷停止條件和訓(xùn)練效果
  validate_feed = {x: mnist.validation.images,
          y_: mnist.validation.labels}
  
  # 準(zhǔn)備測試數(shù)據(jù),用于模型優(yōu)劣的最后評價標(biāo)準(zhǔn)
  test_feed = {x: mnist.test.images, y_: mnist.test.labels}
  
  # 迭代訓(xùn)練神經(jīng)網(wǎng)絡(luò)
  for i in range(TRAINING_STEPS):
   if i%1000 == 0:
    validate_acc = sess.run(accuracy, feed_dict=validate_feed)
    print("After %d training step(s), validation accuracy using average " 
       "model is %g " % (i, validate_acc))
    
   xs, ys = mnist.train.next_batch(BATCH_SIZE)
   sess.run(train_op, feed_dict={x: xs, y_: ys})
  
  # 訓(xùn)練結(jié)束后在測試集上檢測模型的最終正確率
  test_acc = sess.run(accuracy, feed_dict=test_feed)
  print("After %d training steps, test accuracy using average model "
     "is %g " % (TRAINING_STEPS, test_acc))
  
  
# 主程序入口
def main(argv=None):
 mnist = input_data.read_data_sets("/tmp/data", one_hot=True)
 train(mnist)
 
# Tensorflow主程序入口
if __name__ == '__main__':
 tf.app.run()

輸出結(jié)果如下:

Extracting /tmp/data/train-images-idx3-ubyte.gz
Extracting /tmp/data/train-labels-idx1-ubyte.gz
Extracting /tmp/data/t10k-images-idx3-ubyte.gz
Extracting /tmp/data/t10k-labels-idx1-ubyte.gz
After 0 training step(s), validation accuracy using average model is 0.0462 
After 1000 training step(s), validation accuracy using average model is 0.9784 
After 2000 training step(s), validation accuracy using average model is 0.9806 
After 3000 training step(s), validation accuracy using average model is 0.9798 
After 4000 training step(s), validation accuracy using average model is 0.9814 
After 5000 training step(s), validation accuracy using average model is 0.9826 
After 6000 training step(s), validation accuracy using average model is 0.9828 
After 7000 training step(s), validation accuracy using average model is 0.9832 
After 8000 training step(s), validation accuracy using average model is 0.9838 
After 9000 training step(s), validation accuracy using average model is 0.983 
After 10000 training step(s), validation accuracy using average model is 0.9836 
After 11000 training step(s), validation accuracy using average model is 0.9822 
After 12000 training step(s), validation accuracy using average model is 0.983 
After 13000 training step(s), validation accuracy using average model is 0.983 
After 14000 training step(s), validation accuracy using average model is 0.9844 
After 15000 training step(s), validation accuracy using average model is 0.9832 
After 16000 training step(s), validation accuracy using average model is 0.9844 
After 17000 training step(s), validation accuracy using average model is 0.9842 
After 18000 training step(s), validation accuracy using average model is 0.9842 
After 19000 training step(s), validation accuracy using average model is 0.9838 
After 20000 training step(s), validation accuracy using average model is 0.9834 
After 21000 training step(s), validation accuracy using average model is 0.9828 
After 22000 training step(s), validation accuracy using average model is 0.9834 
After 23000 training step(s), validation accuracy using average model is 0.9844 
After 24000 training step(s), validation accuracy using average model is 0.9838 
After 25000 training step(s), validation accuracy using average model is 0.9834 
After 26000 training step(s), validation accuracy using average model is 0.984 
After 27000 training step(s), validation accuracy using average model is 0.984 
After 28000 training step(s), validation accuracy using average model is 0.9836 
After 29000 training step(s), validation accuracy using average model is 0.9842 
After 30000 training steps, test accuracy using average model is 0.9839

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python面向?qū)ο骭詳談類的繼承與方法的重載

    python面向?qū)ο骭詳談類的繼承與方法的重載

    下面小編就為大家?guī)硪黄猵ython面向?qū)ο骭詳談類的繼承與方法的重載。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 深入解讀Python解析XML的幾種方式

    深入解讀Python解析XML的幾種方式

    這篇文章主要為大家詳細介紹了深入解讀Python解析XML的幾種方式,以ElementTree模塊為例,演示具體使用方法和場景,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼

    Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼

    ttkbootstrap 是一個基于 tkinter 的界面美化庫,使用這個工具可以開發(fā)出類似前端 bootstrap 風(fēng)格的 tkinter 桌面程序。本文重點給大家介紹Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼,感興趣的朋友一起看看吧
    2022-02-02
  • python利用json和pyecharts畫折線圖實例代碼

    python利用json和pyecharts畫折線圖實例代碼

    這篇文章主要介紹了python利用json和pyecharts畫折線圖實例,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Python __slots__的使用方法

    Python __slots__的使用方法

    這篇文章主要介紹了Python __slots__的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python實現(xiàn)動態(tài)條形圖繪制的示例代碼

    Python實現(xiàn)動態(tài)條形圖繪制的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Python語言實現(xiàn)動態(tài)條形圖的繪制,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題

    python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題

    本文主要講解基于python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題,在這大家需要注意頁面元素定位及文本框和驗證碼的frame嵌套問題,感興趣的朋友一起看看吧
    2021-07-07
  • Flask使用SQLAlchemy實現(xiàn)持久化數(shù)據(jù)

    Flask使用SQLAlchemy實現(xiàn)持久化數(shù)據(jù)

    本文主要介紹了Flask使用SQLAlchemy實現(xiàn)持久化數(shù)據(jù),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • python中torch.load中的map_location參數(shù)使用

    python中torch.load中的map_location參數(shù)使用

    在PyTorch中,torch.load()函數(shù)是用于加載保存模型或張量數(shù)據(jù)的重要工具,map_location參數(shù)為我們提供了極大的靈活性,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 利用Python實現(xiàn)讀取Word表格計算匯總并寫入Excel

    利用Python實現(xiàn)讀取Word表格計算匯總并寫入Excel

    這篇文章主要給大家介紹了關(guān)于如何利用Python實現(xiàn)讀取Word表格計算匯總并寫入Excel的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01

最新評論

沙田区| 佛山市| 扶绥县| 榕江县| 仪陇县| 沙河市| 莎车县| 关岭| 高安市| 来安县| 漯河市| 嫩江县| 阿鲁科尔沁旗| 廉江市| 沽源县| 扶风县| 沙洋县| 育儿| 夹江县| 石楼县| 云龙县| 宣恩县| 房山区| 新宾| 乌兰察布市| 琼海市| 扶风县| 沭阳县| 瓦房店市| 衡南县| 正定县| 井陉县| 武宁县| 门头沟区| 股票| 武夷山市| 安化县| 丰原市| 安康市| 东至县| 喀什市|