婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 由淺入深學(xué)習(xí)TensorFlow MNIST 數(shù)據(jù)集

由淺入深學(xué)習(xí)TensorFlow MNIST 數(shù)據(jù)集

熱門標(biāo)簽:南昌辦理400電話怎么安裝 哈爾濱外呼系統(tǒng)代理商 鄭州智能外呼系統(tǒng)運(yùn)營(yíng)商 電話機(jī)器人適用業(yè)務(wù) 湛江電銷防封卡 佛山防封外呼系統(tǒng)收費(fèi) 徐州天音防封電銷卡 獲客智能電銷機(jī)器人 不錯(cuò)的400電話辦理

MNIST 數(shù)據(jù)集介紹

MNIST 包含 0~9 的手寫數(shù)字, 共有 60000 個(gè)訓(xùn)練集和 10000 個(gè)測(cè)試集. 數(shù)據(jù)的格式為單通道 28*28 的灰度圖.

LeNet 模型介紹

LeNet 網(wǎng)絡(luò)最早由紐約大學(xué)的 Yann LeCun 等人于 1998 年提出, 也稱 LeNet5. LeNet 是神經(jīng)網(wǎng)絡(luò)的鼻祖, 被譽(yù)為卷積神經(jīng)網(wǎng)絡(luò)的 “Hello World”.

卷積

池化 (下采樣)

激活函數(shù) (ReLU)

LeNet 逐層分析

1. 第一個(gè)卷積層

2. 第一個(gè)池化層

3. 第二個(gè)卷積層

4. 第二個(gè)池化層

5. 全連接卷積層

6. 全連接層

7. 全連接層 (輸出層)

代碼實(shí)現(xiàn)

導(dǎo)包

from tensorflow.keras.datasets import mnist
from matplotlib import pyplot as plt
import numpy as np
import tensorflow as tf

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

# ------------------1. 讀取  查看數(shù)據(jù)------------------

# 讀取數(shù)據(jù)
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# 數(shù)據(jù)集查看
print(X_train.shape)  # (60000, 28, 28)
print(y_train.shape)  # (60000,)
print(X_test.shape)  # (10000, 28, 28)
print(y_test.shape)  # (10000,)
print(type(X_train))  # class 'numpy.ndarray'>

# 圖片顯示
plt.imshow(X_train[0], cmap="Greys")  # 查看第一張圖片
plt.show()

數(shù)據(jù)預(yù)處理

# ------------------2. 數(shù)據(jù)預(yù)處理------------------

# 格式轉(zhuǎn)換 (將圖片從28*28擴(kuò)充為32*32)
X_train = np.pad(X_train, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)
X_test = np.pad(X_test, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)
print(X_train.shape)  # (60000, 32, 32)
print(X_test.shape)  # (10000, 32, 32)

# 數(shù)據(jù)集格式變換
X_train = X_train.astype(np.float32)
X_test = X_test.astype(np.float32)

# 數(shù)據(jù)正則化
X_train /= 255
X_test /= 255

# 數(shù)據(jù)維度轉(zhuǎn)換
X_train = np.expand_dims(X_train, axis=-1)
X_test = np.expand_dims(X_test, axis=-1)
print(X_train.shape)  # (60000, 32, 32, 1)
print(X_test.shape)  # (10000, 32, 32, 1)

模型建立

# 第一個(gè)卷積層
conv_layer_1 = tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第一個(gè)池化層
pool_layer_1 = tf.keras.layers.MaxPool2D(pool_size=(2, 2), padding="same")
# 第二個(gè)卷積層
conv_layer_2 = tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第二個(gè)池化層
pool_layer_2 = tf.keras.layers.MaxPool2D(padding="same")
# 扁平化
flatten = tf.keras.layers.Flatten()
# 第一個(gè)全連接層
fc_layer_1 = tf.keras.layers.Dense(units=120, activation=tf.nn.relu)
# 第二個(gè)全連接層
fc_layer_2 = tf.keras.layers.Dense(units=84, activation=tf.nn.softmax)
# 輸出層
output_layer = tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)

卷積 Conv2D 的用法:

  • filters: 卷積核個(gè)數(shù)
  • kernel_size: 卷積核大小
  • strides = (1, 1): 步長(zhǎng)
  • padding = “vaild”: valid 為舍棄, same 為補(bǔ)齊
  • activation = tf.nn.relu: 激活函數(shù)
  • data_format = None: 默認(rèn) channels_last

池化 AveragePooling2D 的用法:

  • pool_size: 池的大小
  • strides = (1, 1): 步長(zhǎng)
  • padding = “vaild”: valid 為舍棄, same 為補(bǔ)齊
  • activation = tf.nn.relu: 激活函數(shù)
  • data_format = None: 默認(rèn) channels_last

全連接 Dense 的用法:

  • units: 輸出的維度
  • activation: 激活函數(shù)
  • strides = (1, 1): 步長(zhǎng)
  • padding = “vaild”: valid 為舍棄, same 為補(bǔ)齊
  • activation = tf.nn.relu: 激活函數(shù)
  • data_format = None: 默認(rèn) channels_last
# 模型實(shí)例化
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu,
                           input_shape=(32, 32, 1)),
    # relu
    tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'),
    tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu),
    tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(units=120, activation=tf.nn.relu),

    tf.keras.layers.Dense(units=84, activation=tf.nn.relu),
    tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)
])

# 模型展示
model.summary()

輸出結(jié)果:

訓(xùn)練模型

# ------------------4. 訓(xùn)練模型------------------

# 設(shè)置超參數(shù)
num_epochs = 10  # 訓(xùn)練輪數(shù)
batch_size = 1000  # 批次大小
learning_rate = 0.001  # 學(xué)習(xí)率
# 定義優(yōu)化器
adam_optimizer = tf.keras.optimizers.Adam(learning_rate)
model.compile(optimizer=adam_optimizer,loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])

complie 的用法:

  • optimizer: 優(yōu)化器
  • loss: 損失函數(shù)
  • metrics: 評(píng)價(jià)
with tf.Session() as sess:
    # 初始化所有變量
    init = tf.global_variables_initializer()
    sess.run(init)

    model.fit(x=X_train,y=y_train,batch_size=batch_size,epochs=num_epochs)

    # 評(píng)估指標(biāo)
    print(model.evaluate(X_test, y_test))  # loss value  metrics values

輸出結(jié)果:

fit 的用法:

  • x: 訓(xùn)練集
  • y: 測(cè)試集
  • batch_size: 批次大小
  • enpochs: 訓(xùn)練遍數(shù)

保存模型

# ------------------5. 保存模型------------------
model.save('lenet_model.h5')

流程總結(jié)

完整代碼

from tensorflow.keras.datasets import mnist
from matplotlib import pyplot as plt
import numpy as np
import tensorflow as tf

# ------------------1. 讀取  查看數(shù)據(jù)------------------

# 讀取數(shù)據(jù)
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# 數(shù)據(jù)集查看
print(X_train.shape)  # (60000, 28, 28)
print(y_train.shape)  # (60000,)
print(X_test.shape)  # (10000, 28, 28)
print(y_test.shape)  # (10000,)
print(type(X_train))  # class 'numpy.ndarray'>

# 圖片顯示
plt.imshow(X_train[0], cmap="Greys")  # 查看第一張圖片
plt.show()

# ------------------2. 數(shù)據(jù)預(yù)處理------------------

# 格式轉(zhuǎn)換 (將圖片從28*28擴(kuò)充為32*32)
X_train = np.pad(X_train, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)
X_test = np.pad(X_test, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)
print(X_train.shape)  # (60000, 32, 32)
print(X_test.shape)  # (10000, 32, 32)

# 數(shù)據(jù)集格式變換
X_train = X_train.astype(np.float32)
X_test = X_test.astype(np.float32)

# 數(shù)據(jù)正則化
X_train /= 255
X_test /= 255

# 數(shù)據(jù)維度轉(zhuǎn)換
X_train = np.expand_dims(X_train, axis=-1)
X_test = np.expand_dims(X_test, axis=-1)
print(X_train.shape)  # (60000, 32, 32, 1)
print(X_test.shape)  # (10000, 32, 32, 1)

# ------------------3. 模型建立------------------

# 第一個(gè)卷積層
conv_layer_1 = tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第一個(gè)池化層
pool_layer_1 = tf.keras.layers.MaxPool2D(pool_size=(2, 2), padding="same")
# 第二個(gè)卷積層
conv_layer_2 = tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第二個(gè)池化層
pool_layer_2 = tf.keras.layers.MaxPool2D(padding="same")
# 扁平化
flatten = tf.keras.layers.Flatten()
# 第一個(gè)全連接層
fc_layer_1 = tf.keras.layers.Dense(units=120, activation=tf.nn.relu)
# 第二個(gè)全連接層
fc_layer_2 = tf.keras.layers.Dense(units=84, activation=tf.nn.softmax)
# 輸出層
output_layer = tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)


# 模型實(shí)例化
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu,
                           input_shape=(32, 32, 1)),
    # relu
    tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'),
    tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu),
    tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(units=120, activation=tf.nn.relu),

    tf.keras.layers.Dense(units=84, activation=tf.nn.relu),
    tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)
])

# 模型展示
model.summary()

# ------------------4. 訓(xùn)練模型------------------

# 設(shè)置超參數(shù)
num_epochs = 10  # 訓(xùn)練輪數(shù)
batch_size = 1000  # 批次大小
learning_rate = 0.001  # 學(xué)習(xí)率

# 定義優(yōu)化器
adam_optimizer = tf.keras.optimizers.Adam(learning_rate)
model.compile(optimizer=adam_optimizer,loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])


with tf.Session() as sess:
    # 初始化所有變量
    init = tf.global_variables_initializer()
    sess.run(init)

    model.fit(x=X_train,y=y_train,batch_size=batch_size,epochs=num_epochs)

    # 評(píng)估指標(biāo)
    print(model.evaluate(X_test, y_test))  # loss value  metrics values

# ------------------5. 保存模型------------------
model.save('lenet_model.h5')

到此這篇關(guān)于由淺入深學(xué)習(xí)TensorFlow MNIST 數(shù)據(jù)集的文章就介紹到這了,更多相關(guān)TensorFlow MNIST 數(shù)據(jù)集內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • TensorFlow 實(shí)戰(zhàn)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的實(shí)例講解
  • PyTorch上實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)CNN的方法
  • CNN的Pytorch實(shí)現(xiàn)(LeNet)
  • Python深度學(xué)習(xí)pytorch卷積神經(jīng)網(wǎng)絡(luò)LeNet

標(biāo)簽:呂梁 紹興 蘭州 安康 吉安 廣西 懷化 蕪湖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《由淺入深學(xué)習(xí)TensorFlow MNIST 數(shù)據(jù)集》,本文關(guān)鍵詞  由淺入深,學(xué)習(xí),TensorFlow,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《由淺入深學(xué)習(xí)TensorFlow MNIST 數(shù)據(jù)集》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于由淺入深學(xué)習(xí)TensorFlow MNIST 數(shù)據(jù)集的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91精品国产手机| xvideos.蜜桃一区二区| 午夜欧美大尺度福利影院在线看| 九色|91porny| 一区二区在线观看视频在线观看| 国产亚洲短视频| 日韩美女一区二区三区四区| 91久久人澡人人添人人爽欧美| 九九国产精品视频| 日韩国产精品久久久| 亚洲精品第一国产综合野| 久久蜜桃香蕉精品一区二区三区| 欧美一区在线视频| 欧美欧美欧美欧美| 欧美性色黄大片| 99久久国产免费看| 波多野结衣中文字幕一区 | 欧美日韩国产系列| 91啪亚洲精品| 成人av电影在线播放| 粉嫩13p一区二区三区| 国产做a爰片久久毛片 | 在线观看91视频| av爱爱亚洲一区| 成人av影视在线观看| 成人毛片老司机大片| 国产成人精品免费在线| 国产精品18久久久久久久网站| 激情五月婷婷综合| 九色|91porny| 国产乱对白刺激视频不卡| 2014亚洲片线观看视频免费| 成人理论电影网| 国产91精品露脸国语对白| 韩国三级中文字幕hd久久精品| 久久国内精品自在自线400部| 日本va欧美va精品发布| 蜜臀av一区二区三区| 蜜桃av一区二区三区| 久久99精品一区二区三区| 精品中文字幕一区二区| 久久99精品国产麻豆婷婷洗澡| 麻豆精品视频在线观看免费 | 国产精品99久久久久久宅男| 国产在线播放一区二区三区 | 在线不卡免费欧美| 欧美一区二区三区在线电影| 欧美变态口味重另类| 久久久精品国产免费观看同学| 久久精品视频免费观看| 自拍偷在线精品自拍偷无码专区| 亚洲欧美电影一区二区| 亚洲丶国产丶欧美一区二区三区| 日韩精品三区四区| 欧美一区二区高清| 日韩欧美区一区二| 国产色产综合产在线视频| 国产欧美日韩中文久久| 国产精品美女久久福利网站| 亚洲柠檬福利资源导航| 日韩国产欧美三级| 国产成人av电影在线播放| 91性感美女视频| 91麻豆精品91久久久久久清纯| 日韩女优毛片在线| 最新国产成人在线观看| 性做久久久久久免费观看| 精品综合免费视频观看| 91视视频在线直接观看在线看网页在线看| 欧美性色综合网| 久久亚洲春色中文字幕久久久| 亚洲四区在线观看| 日一区二区三区| 国产999精品久久久久久 | 精品欧美黑人一区二区三区| 国产亚洲欧美在线| 性做久久久久久久免费看| 国产精品一色哟哟哟| 欧美视频一区二区三区在线观看| 国产拍欧美日韩视频二区| 久久婷婷色综合| 亚洲欧美日韩成人高清在线一区| 日韩精品免费视频人成| 成人一区二区视频| 91精品在线一区二区| 亚洲欧洲www| 蜜臀精品一区二区三区在线观看 | 欧美亚洲综合久久| 久久久久综合网| 日韩精品久久理论片| 久久久99久久| 亚洲日本免费电影| 国产精品 欧美精品| 欧美日韩一区二区三区不卡 | 亚洲综合久久久久| 国产不卡免费视频| 欧美va亚洲va在线观看蝴蝶网| 玉米视频成人免费看| 成人手机电影网| 精品国产99国产精品| 五月天欧美精品| 色婷婷久久综合| 中文文精品字幕一区二区| 另类小说欧美激情| 制服.丝袜.亚洲.中文.综合| 一区二区三区在线播放| 99精品久久99久久久久| 欧美极品xxx| 国产精品91xxx| 日韩电影免费一区| 欧美三级韩国三级日本三斤| 亚洲男人天堂av| av亚洲精华国产精华精| 国产精品无遮挡| 高清国产一区二区三区| 国产视频一区二区在线| 国内成人自拍视频| 精品久久久网站| 美腿丝袜亚洲色图| 欧美一二三四区在线| 亚洲v精品v日韩v欧美v专区| 在线观看一区不卡| 亚洲国产精品人人做人人爽| 精品视频在线看| 五月激情丁香一区二区三区| 91精品国产欧美日韩| 国产精品麻豆欧美日韩ww| 国产高清精品网站| 欧美精品一区二区三区四区| 日本成人中文字幕| 欧美成人猛片aaaaaaa| 免费的国产精品| 精品福利一二区| 国产精品一区免费视频| 国产视频一区二区三区在线观看| 国产风韵犹存在线视精品| 国产人成亚洲第一网站在线播放| 国产成人综合亚洲网站| 国产精品国产自产拍高清av| 色综合色综合色综合| 午夜精品久久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 91精品国产综合久久香蕉的特点| 亚洲国产成人porn| 日韩欧美激情四射| 国产精品羞羞答答xxdd| 国产精品久久久久久久久免费樱桃 | 国产精品久久久久婷婷二区次| 成人性生交大片免费看中文| 最新日韩在线视频| 欧美三电影在线| 激情综合网天天干| 中文字幕第一区| 欧美中文字幕久久| 91精品国产乱码| 国产大陆a不卡| 亚洲精品videosex极品| 日韩女优av电影| 波多野结衣视频一区| 亚洲国产一区二区三区青草影视| 日韩久久久久久| av电影天堂一区二区在线| 香蕉加勒比综合久久| 久久美女艺术照精彩视频福利播放| 95精品视频在线| 蜜桃传媒麻豆第一区在线观看| 国产精品每日更新| 欧美精品日韩一区| 成人av电影观看| 蜜臀av国产精品久久久久| 国产精品高潮久久久久无| 在线不卡免费av| jlzzjlzz欧美大全| 免费看欧美女人艹b| 中文字幕在线视频一区| 日韩欧美国产综合在线一区二区三区| 不卡一区二区在线| 激情综合色综合久久| 亚洲黄色免费网站| 久久综合国产精品| 欧美日韩精品久久久| 成人黄色综合网站| 久久精品国产**网站演员| 一区二区三区中文在线| 欧美国产精品久久| 日韩一级高清毛片| 欧美制服丝袜第一页| 成人免费视频视频在线观看免费| 喷白浆一区二区| 91香蕉视频在线| 亚洲高清不卡在线| 中文字幕欧美一| 久久久久久麻豆| 欧美高清视频www夜色资源网| 99久久精品国产一区二区三区| 精品一二三四在线| 爽爽淫人综合网网站| 一区二区在线观看视频| 国产精品进线69影院| 久久精品一区八戒影视|