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

主頁 > 知識庫 > 由淺入深學習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 數據集的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人av电影免费观看| 韩日精品视频一区| 欧美日韩在线免费视频| 成人国产精品免费观看视频| 国产在线不卡一区| 韩国一区二区三区| 国产一区二区成人久久免费影院| 免费的成人av| 九九九精品视频| 国产69精品久久99不卡| 99久久久国产精品| 在线观看网站黄不卡| 欧美喷潮久久久xxxxx| 欧美一卡2卡3卡4卡| 精品久久久久久久久久久久久久久 | 亚洲v中文字幕| 亚洲午夜久久久久| 日本欧美肥老太交大片| 狠狠色丁香久久婷婷综合丁香| 久久99国产精品麻豆| 成人午夜视频福利| 欧美日韩视频在线第一区 | 成人av资源在线观看| 99国产精品视频免费观看| 97se亚洲国产综合自在线不卡| av成人免费在线观看| 欧美日韩国产区一| 国产免费观看久久| 日韩成人免费看| 成人午夜激情视频| 日韩亚洲欧美高清| 一区二区欧美国产| 激情成人综合网| 欧洲国内综合视频| 国产亚洲一本大道中文在线| 一区二区三区视频在线看| 麻豆精品一区二区三区| 色综合欧美在线视频区| 久久久久99精品一区| 亚洲成av人片在线观看| 成人avav在线| 日韩免费视频一区| 五月天久久比比资源色| 久久成人精品无人区| 韩国午夜理伦三级不卡影院| 成人激情午夜影院| 欧美精品久久久久久久久老牛影院| 久久久久久久性| 一区二区三区在线看| 成人午夜激情片| 久久天天做天天爱综合色| 国产精品久久久久久久久久免费看 | 欧美xxxxxxxx| 亚洲精品中文字幕乱码三区| 午夜一区二区三区在线观看| 久久99精品久久久久久久久久久久 | 日韩**一区毛片| 国产一区二区三区四| 日韩一区二区三区电影在线观看 | 亚洲欧美日韩国产一区二区三区| 日韩**一区毛片| 在线亚洲高清视频| 久久综合狠狠综合久久综合88 | 色呦呦日韩精品| 精品国产区一区| 一区二区三区在线视频免费| 国产成人午夜高潮毛片| 欧美mv日韩mv国产网站| 亚洲欧美区自拍先锋| 国内国产精品久久| 欧美性猛交xxxxxx富婆| 国产女人18毛片水真多成人如厕 | 在线观看亚洲专区| 国产欧美一区二区三区沐欲| 久久99久久久欧美国产| 欧美丝袜丝交足nylons| 国产精品久久三区| 99久久精品国产毛片| 国产精品夫妻自拍| 99精品欧美一区| 欧美日韩亚洲综合| 午夜电影网一区| av一区二区三区四区| 日韩视频在线一区二区| 天堂成人国产精品一区| 欧美美女一区二区| 免费成人你懂的| 欧美精品一区二区在线观看| 久久99精品国产麻豆婷婷洗澡| 欧美美女直播网站| 欧美aaa在线| 欧美xxxxx裸体时装秀| 国产一区欧美二区| 久久免费偷拍视频| 国产经典欧美精品| 精品国产制服丝袜高跟| 国产一区二区毛片| 精品福利av导航| 国产一区二区三区免费看| 国产精品私人影院| 欧美视频一二三区| 精品一区二区三区影院在线午夜| 26uuu国产在线精品一区二区| 国产一区二区三区av电影| 日本一区二区久久| 91麻豆精品秘密| 亚洲国产视频一区二区| 91在线云播放| 亚洲精品日韩专区silk| 欧美在线免费播放| 亚洲一级电影视频| 日韩精品中文字幕在线一区| 国产精品夜夜爽| 午夜精品免费在线观看| 精品国产乱码久久久久久免费 | 亚洲综合一二区| 51精品视频一区二区三区| 精品一区二区国语对白| 国产精品区一区二区三区| 91官网在线免费观看| 亚洲欧美一区二区三区孕妇| 91国偷自产一区二区使用方法| 亚洲制服丝袜av| 日韩精品一区二区三区视频在线观看| 成人午夜av在线| 日韩av中文字幕一区二区三区| 日韩精品中午字幕| 99久久久久免费精品国产| 亚洲制服丝袜在线| 日韩欧美精品在线| 国产91丝袜在线18| 亚洲成人激情av| 在线不卡欧美精品一区二区三区| 丝瓜av网站精品一区二区| 欧美性色aⅴ视频一区日韩精品| 国产精品成人网| 欧美综合天天夜夜久久| 韩国三级在线一区| 欧美激情一区二区在线| 99久久精品国产毛片| 国产精品视频第一区| 色婷婷亚洲一区二区三区| 一区二区三区日韩精品视频| 日韩欧美二区三区| 日韩一区二区在线播放| 粉嫩一区二区三区性色av| 中文字幕精品三区| 91搞黄在线观看| 亚洲制服丝袜一区| 日韩一级黄色大片| 99在线热播精品免费| 日韩成人精品在线观看| 国产精品午夜春色av| 99精品视频中文字幕| 蜜臀99久久精品久久久久久软件| 欧美精品一区二区三区四区 | 欧美日韩国产中文| 亚洲五码中文字幕| 欧美中文字幕不卡| 亚洲成a人v欧美综合天堂 | 中文字幕精品一区二区精品绿巨人 | 日韩欧美三级在线| 91电影在线观看| 国产综合色视频| 亚洲欧美韩国综合色| 亚洲精品一区二区三区香蕉 | 国产福利一区二区三区视频| 亚洲高清免费观看 | 成人在线视频一区| 成人av在线电影| 国产三级精品视频| 精品av久久707| 国产日本欧美一区二区| 欧美激情一区在线| 国产欧美日韩久久| 综合在线观看色| 亚洲色图丝袜美腿| 国产嫩草影院久久久久| 欧美国产精品v| 午夜精品视频一区| 经典三级一区二区| a亚洲天堂av| 91丝袜呻吟高潮美腿白嫩在线观看| 日本高清不卡视频| 日韩一二在线观看| 国产精品久久看| 亚洲精品成人在线| 日本aⅴ免费视频一区二区三区| 久久av中文字幕片| eeuss鲁一区二区三区| 91久久久免费一区二区| 日韩一区二区视频| 亚洲激情网站免费观看| 国产一区二区三区久久久 | 国产精品一区一区| 97久久超碰国产精品| 欧美日韩国产精品成人| 国产日本一区二区| 《视频一区视频二区| 午夜精品一区在线观看|