婷婷综合国产,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
    久久久精品一品道一区| 99re亚洲国产精品| 一区二区三区精密机械公司| 国产精品国产馆在线真实露脸| 欧美韩国日本不卡| 国产亚洲综合av| 一区在线中文字幕| 亚洲综合无码一区二区| 亚洲第一会所有码转帖| 婷婷综合五月天| 麻豆国产一区二区| 丁香网亚洲国际| 在线观看亚洲专区| 日韩丝袜美女视频| 国产网红主播福利一区二区| 日韩毛片一二三区| 午夜久久久久久| 国产成人夜色高潮福利影视| av一区二区三区| 7777精品伊人久久久大香线蕉完整版 | 日韩无一区二区| 久久精品人人做人人综合 | 日韩一区中文字幕| 亚洲成人777| 高清成人免费视频| 欧美网站一区二区| 国产偷v国产偷v亚洲高清| 亚洲免费在线观看| 国产真实精品久久二三区| 99久久精品情趣| 欧美一级一区二区| 亚洲美女区一区| 国产美女在线精品| 欧美日韩精品是欧美日韩精品| 久久夜色精品国产噜噜av| 亚洲精品一二三| 91国产丝袜在线播放| 精品成人私密视频| 亚洲国产成人精品视频| 成人精品电影在线观看| 欧美一区二区视频观看视频| 亚洲情趣在线观看| 国产一区二区在线视频| 欧美精品在线观看播放| 中文字幕欧美激情一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 色综合天天天天做夜夜夜夜做| 精品国产自在久精品国产| 亚洲成av人影院在线观看网| 成人动漫视频在线| 久久婷婷成人综合色| 免费在线成人网| 欧美午夜免费电影| 一个色综合网站| 99riav一区二区三区| 国产精品久久久久毛片软件| 国产一区二区三区香蕉 | 国产黑丝在线一区二区三区| 欧美精品 日韩| 天堂va蜜桃一区二区三区漫画版| 色丁香久综合在线久综合在线观看| 中文字幕乱码一区二区免费| 另类的小说在线视频另类成人小视频在线| 在线精品视频免费观看| 亚洲视频网在线直播| 99久久精品免费| 亚洲欧美成aⅴ人在线观看| 91欧美激情一区二区三区成人| 国产精品美女一区二区| eeuss鲁片一区二区三区 | 国产91精品免费| 久久久天堂av| 成人av电影免费在线播放| 久久影视一区二区| 成人少妇影院yyyy| 亚洲乱码国产乱码精品精可以看| 色综合久久久久综合99| 一区二区三区在线视频观看58| 色综合欧美在线| 亚洲一区二区免费视频| 91.麻豆视频| 蓝色福利精品导航| 欧美激情在线看| 一本久久a久久精品亚洲| 亚洲午夜精品网| 日本一区二区不卡视频| 五月天精品一区二区三区| 日韩毛片高清在线播放| 在线不卡中文字幕| 久久精品夜色噜噜亚洲aⅴ| 日韩一级免费观看| 精品欧美一区二区久久| 亚洲午夜视频在线观看| 精品国产污污免费网站入口 | 欧美剧情片在线观看| 亚洲风情在线资源站| 精品1区2区3区| 国内精品免费**视频| 最新不卡av在线| 日韩丝袜情趣美女图片| 成人网在线免费视频| 天天综合色天天综合| 国产网站一区二区| 欧洲国产伦久久久久久久| 久久超级碰视频| 亚洲精品一二三四区| 精品国产3级a| 欧美色欧美亚洲另类二区| 国产精品一区二区三区99| 亚洲一区二区三区影院| 久久久精品免费免费| 欧美视频一二三区| 成人av免费在线观看| 麻豆专区一区二区三区四区五区| 国产精品视频一二三区| 欧美第一区第二区| 欧美私模裸体表演在线观看| 成人午夜视频网站| 久久精品国产网站| 亚洲国产日韩综合久久精品| 国产精品私房写真福利视频| 在线播放/欧美激情| 色婷婷亚洲精品| 成人教育av在线| 国产精品一区二区91| 日本不卡123| 午夜视频一区二区三区| 亚洲精品国久久99热| 中文字幕第一区综合| 久久久亚洲精品一区二区三区| 欧美一区三区四区| 在线观看亚洲精品| 色悠悠久久综合| 91免费国产视频网站| 成人黄色网址在线观看| 国产91对白在线观看九色| 精品一区二区免费| 精品亚洲欧美一区| 99国产精品久久久| 国产a精品视频| 国产成人午夜高潮毛片| 国产一区在线看| 国产一区二区三区免费| 激情图区综合网| 国产一区二区三区免费在线观看| 激情小说欧美图片| 国产美女视频一区| 国产成人8x视频一区二区| 国产呦精品一区二区三区网站| 韩日av一区二区| 国产成人啪午夜精品网站男同| 国产乱码精品一区二区三区忘忧草 | 久久久久久久久久久久久女国产乱 | 91久久精品网| 欧美精品一卡二卡| 欧美一区二区黄色| 精品国产污网站| 亚洲国产精品t66y| 亚洲欧洲日韩女同| 一区二区在线观看av| 亚洲小说春色综合另类电影| 午夜视频在线观看一区二区三区| 日本欧洲一区二区| 国产成人精品一区二区三区四区| 成人三级在线视频| 欧美日韩一区二区三区视频| 日韩欧美视频一区| 国产嫩草影院久久久久| 玉米视频成人免费看| 日韩国产一二三区| 日韩欧美中文字幕制服| 精品国产乱码久久久久久久久| 国产午夜亚洲精品不卡| 亚洲另类一区二区| 青青草国产精品亚洲专区无| 国产一区在线精品| 91色在线porny| 日韩欧美一级精品久久| 国产精品剧情在线亚洲| 五月婷婷另类国产| 成人免费看黄yyy456| 欧美日韩亚洲综合一区二区三区| 欧美大片一区二区三区| 1000精品久久久久久久久| 日本在线不卡视频一二三区| 成人性色生活片| 91精品国产高清一区二区三区 | 亚洲国产成人porn| 国产精品一区二区男女羞羞无遮挡| 成人av网在线| 日韩你懂的在线观看| 亚洲三级在线看| 国产精品主播直播| 欧美美女黄视频| 国产精品成人一区二区三区夜夜夜| 免费成人美女在线观看| 欧亚洲嫩模精品一区三区| 国产喂奶挤奶一区二区三区| 久久国产尿小便嘘嘘| 欧美日韩精品欧美日韩精品一|