欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 由淺入深學習TensorFlow MNIST 數據集

由淺入深學習TensorFlow MNIST 數據集

熱門標簽:南昌辦理400電話怎么安裝 哈爾濱外呼系統代理商 鄭州智能外呼系統運營商 電話機器人適用業務 湛江電銷防封卡 佛山防封外呼系統收費 徐州天音防封電銷卡 獲客智能電銷機器人 不錯的400電話辦理

MNIST 數據集介紹

MNIST 包含 0~9 的手寫數字, 共有 60000 個訓練集和 10000 個測試集. 數據的格式為單通道 28*28 的灰度圖.

LeNet 模型介紹

LeNet 網絡最早由紐約大學的 Yann LeCun 等人于 1998 年提出, 也稱 LeNet5. LeNet 是神經網絡的鼻祖, 被譽為卷積神經網絡的 “Hello World”.

卷積

池化 (下采樣)

激活函數 (ReLU)

LeNet 逐層分析

1. 第一個卷積層

2. 第一個池化層

3. 第二個卷積層

4. 第二個池化層

5. 全連接卷積層

6. 全連接層

7. 全連接層 (輸出層)

代碼實現

導包

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

讀取 查看數據

# ------------------1. 讀取  查看數據------------------

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

# 數據集查看
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. 數據預處理------------------

# 格式轉換 (將圖片從28*28擴充為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)

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

# 數據正則化
X_train /= 255
X_test /= 255

# 數據維度轉換
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)

模型建立

# 第一個卷積層
conv_layer_1 = tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第一個池化層
pool_layer_1 = tf.keras.layers.MaxPool2D(pool_size=(2, 2), padding="same")
# 第二個卷積層
conv_layer_2 = tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第二個池化層
pool_layer_2 = tf.keras.layers.MaxPool2D(padding="same")
# 扁平化
flatten = tf.keras.layers.Flatten()
# 第一個全連接層
fc_layer_1 = tf.keras.layers.Dense(units=120, activation=tf.nn.relu)
# 第二個全連接層
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: 卷積核個數
  • kernel_size: 卷積核大小
  • strides = (1, 1): 步長
  • padding = “vaild”: valid 為舍棄, same 為補齊
  • activation = tf.nn.relu: 激活函數
  • data_format = None: 默認 channels_last

池化 AveragePooling2D 的用法:

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

全連接 Dense 的用法:

  • units: 輸出的維度
  • activation: 激活函數
  • strides = (1, 1): 步長
  • padding = “vaild”: valid 為舍棄, same 為補齊
  • activation = tf.nn.relu: 激活函數
  • data_format = None: 默認 channels_last
# 模型實例化
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. 訓練模型------------------

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

complie 的用法:

  • optimizer: 優化器
  • loss: 損失函數
  • metrics: 評價
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)

    # 評估指標
    print(model.evaluate(X_test, y_test))  # loss value  metrics values

輸出結果:

fit 的用法:

  • x: 訓練集
  • y: 測試集
  • batch_size: 批次大小
  • enpochs: 訓練遍數

保存模型

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

流程總結

完整代碼

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

# ------------------1. 讀取  查看數據------------------

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

# 數據集查看
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. 數據預處理------------------

# 格式轉換 (將圖片從28*28擴充為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)

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

# 數據正則化
X_train /= 255
X_test /= 255

# 數據維度轉換
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. 模型建立------------------

# 第一個卷積層
conv_layer_1 = tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第一個池化層
pool_layer_1 = tf.keras.layers.MaxPool2D(pool_size=(2, 2), padding="same")
# 第二個卷積層
conv_layer_2 = tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)
# 第二個池化層
pool_layer_2 = tf.keras.layers.MaxPool2D(padding="same")
# 扁平化
flatten = tf.keras.layers.Flatten()
# 第一個全連接層
fc_layer_1 = tf.keras.layers.Dense(units=120, activation=tf.nn.relu)
# 第二個全連接層
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)


# 模型實例化
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. 訓練模型------------------

# 設置超參數
num_epochs = 10  # 訓練輪數
batch_size = 1000  # 批次大小
learning_rate = 0.001  # 學習率

# 定義優化器
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)

    # 評估指標
    print(model.evaluate(X_test, y_test))  # loss value  metrics values

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

到此這篇關于由淺入深學習TensorFlow MNIST 數據集的文章就介紹到這了,更多相關TensorFlow MNIST 數據集內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • TensorFlow 實戰之實現卷積神經網絡的實例講解
  • PyTorch上實現卷積神經網絡CNN的方法
  • CNN的Pytorch實現(LeNet)
  • Python深度學習pytorch卷積神經網絡LeNet

標簽:呂梁 紹興 蘭州 安康 吉安 廣西 懷化 蕪湖

巨人網絡通訊聲明:本文標題《由淺入深學習TensorFlow MNIST 數據集》,本文關鍵詞  由淺入深,學習,TensorFlow,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《由淺入深學習TensorFlow MNIST 數據集》相關的同類信息!
  • 本頁收集關于由淺入深學習TensorFlow MNIST 數據集的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    中文字幕中文字幕一区二区| 久久97超碰国产精品超碰| 国产aⅴ综合色| 天天躁日日躁aaaa视频| 日韩亚洲欧美一区| 亚洲gay无套男同| 久久久久无码国产精品一区李宗瑞| 91国产视频在线观看| 亚洲色图视频网站| 99久久久久久| 91福利国产成人精品照片| 亚洲婷婷国产精品电影人久久| 粉嫩aⅴ一区二区三区四区| 91久久久久久久久久久久久久| 国产亚洲短视频| 国产成人综合在线| 亚洲xxxx3d动漫| 日韩一区欧美一区| 91色视频在线| 欧美日韩高清在线播放| 亚洲成人黄色影院| 懂色av粉嫩av蜜乳av| 欧美成人在线直播| 国产精品一区二区无线| 777777国产7777777| 自拍偷拍亚洲综合| 成人三级做爰av| 538prom精品视频线放| 日韩中文字幕不卡| 妺妺窝人体色WWW精品| 国产日韩成人精品| 成人av第一页| 欧美三级一区二区| 日韩福利视频网| 蜜乳av中文字幕| 国产精品免费网站在线观看| 99久久精品情趣| 911精品国产一区二区在线| 日本女优在线视频一区二区| 国产又粗又黄又猛| |精品福利一区二区三区| 国产在线观看免费播放| 欧美成人午夜电影| 成人免费看黄yyy456| 欧美日韩免费电影| 麻豆成人久久精品二区三区小说| 国产免费嫩草影院| 一区二区三区国产| 人妻丰满熟妇aⅴ无码| 国产蜜臀97一区二区三区| aaa国产一区| 日韩欧美专区在线| 国产69精品久久777的优势| 欧美三级三级三级| 久久99国产精品久久99果冻传媒| 在线观看xxx| 日韩在线一区二区三区| 亚洲激情图片网| 一个色在线综合| 日本爱爱爱视频| 亚洲色图视频网站| 自拍偷拍亚洲天堂| 亚洲免费高清视频在线| 中文字幕av网址| 国产精品乱人伦一区二区| 亚洲一区二区在线免费| 亚洲国产精品国自产拍av| 影音先锋资源av| 国产日韩av一区| 色婷婷精品久久二区二区密| 中文一区在线播放| 男男做爰猛烈叫床爽爽小说 | 亚洲av成人片色在线观看高潮| 欧美在线视频你懂得| 美女一区二区久久| 色天天综合久久久久综合片| 麻豆久久久久久久| www深夜成人a√在线| 亚洲综合久久久| 91精品国产高清一区二区三蜜臀| 午夜精品久久久久影视| 男人晚上看的视频| 免费成人结看片| 欧美优质美女网站| 高清不卡在线观看av| 日韩小视频在线观看专区| av欧美精品.com| 久久久青草青青国产亚洲免观| 91亚洲一线产区二线产区| 国产精品久久看| www.狠狠爱| 午夜精品久久久久久久久| 精品国产欧美日韩不卡在线观看| 蜜臀久久久久久久| 欧美高清性hdvideosex| 99久久婷婷国产综合精品| 日本一区二区三区高清不卡| 中日韩精品一区二区三区| 亚洲一区二区三区免费视频| 99热精品免费| 国产精品888| 久久免费电影网| 波多野结衣福利| 五月综合激情网| 欧美日韩免费视频| 91丝袜国产在线播放| 国产精品欧美久久久久无广告| 波多野结衣片子| 日本三级亚洲精品| 7777精品伊人久久久大香线蕉 | 久久久久无码国产精品一区李宗瑞 | 中文字幕乱码在线| 亚洲精品你懂的| 超碰手机在线观看| 成人激情免费视频| 国产精品视频免费| 在线观看天堂av| 国内成人自拍视频| 久久婷婷国产综合精品青草| 亚洲av综合一区二区| 另类人妖一区二区av| 欧美大片日本大片免费观看| 久久人人爽人人爽人人片 | 天天综合网天天综合色| 欧美日韩在线播放| 欧美午夜精品一区二区| 亚洲一区在线观看免费观看电影高清| 色综合天天做天天爱| 成人av电影在线观看| 中文字幕亚洲区| 午夜写真片福利电影网| av激情亚洲男人天堂| 亚洲视频一二三区| 色94色欧美sute亚洲13| 91在线无精精品入口| 一区二区三区四区高清精品免费观看 | 黄色av免费播放| 国产在线观看一区二区| 欧美激情自拍偷拍| 三级影片在线看| 91丨九色丨蝌蚪丨老版| 亚洲在线视频网站| 51午夜精品国产| 免费污网站在线观看| 国产综合色视频| 国产精品初高中害羞小美女文| 91精品国自产在线偷拍蜜桃| 97精品国产97久久久久久久久久久久| 成人欧美一区二区三区黑人麻豆| 日本韩国欧美一区二区三区| 亚洲少妇一区二区| 日韩av网站在线观看| www一区二区| 三级影片在线看| 熟女人妻一区二区三区免费看| 日韩国产精品91| 久久人人97超碰com| 91麻豆精品成人一区二区| 亚洲三级在线视频| 丝袜美腿亚洲色图| 久久久www免费人成精品| 卡通动漫亚洲综合| 韩国三级在线看| 蜜桃av一区二区三区电影| 国产婷婷色一区二区三区四区 | 蜜臀久久久99精品久久久久久| 国产午夜一区二区三区| 国产女人18水真多毛片18精品| 久久无码人妻一区二区三区| 日本午夜一本久久久综合| 国产欧美精品一区二区色综合| 色噜噜久久综合| 黄色片视频免费观看| 国产成人免费在线观看不卡| 一区二区三区在线看| 欧美α欧美αv大片| 紧身裙女教师波多野结衣| 丰满岳乱妇一区二区| 激情图片小说一区| 亚洲人成精品久久久久| 日韩一级精品视频在线观看| 男女全黄做爰文章| 亚洲成年人av| 国产精品一区二区在线看| 亚洲国产一区二区三区 | 亚洲久久久久久久| 奇米四色…亚洲| 国产精品福利一区二区三区| 777精品伊人久久久久大香线蕉| 91大神福利视频| 亚洲午夜久久久久久久久| 国产酒店精品激情| 亚洲成a人片在线不卡一二三区| xfplay精品久久| 欧美精品在线观看一区二区| 成人18视频免费69| 美国黄色一级毛片| 91尤物视频在线观看| 九九国产精品视频| 亚洲成人一区二区|