欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門教程分分享

 更新時(shí)間:2023年05月23日 10:11:44   作者:小小張說(shuō)故事  
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是一類特別適用于處理圖像數(shù)據(jù)的深度學(xué)習(xí)模型,本文介紹了如何使用Keras創(chuàng)建一個(gè)簡(jiǎn)單的CNN模型,并用它對(duì)手寫數(shù)字進(jìn)行分類,需要的可以參考一下

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是一類特別適用于處理圖像數(shù)據(jù)的深度學(xué)習(xí)模型。在Python中,我們可以使用流行的深度學(xué)習(xí)庫(kù)TensorFlow和Keras來(lái)創(chuàng)建和訓(xùn)練一個(gè)CNN模型。在本文中,我們將介紹如何使用Keras創(chuàng)建一個(gè)簡(jiǎn)單的CNN模型,并用它對(duì)手寫數(shù)字進(jìn)行分類。

1. 準(zhǔn)備數(shù)據(jù)集

我們將使用MNIST數(shù)據(jù)集,這是一個(gè)常用的手寫數(shù)字?jǐn)?shù)據(jù)集。Keras庫(kù)提供了一個(gè)方便的函數(shù)來(lái)加載MNIST數(shù)據(jù)集。數(shù)據(jù)集包含60000個(gè)訓(xùn)練樣本和10000個(gè)測(cè)試樣本,每個(gè)樣本是一個(gè)28x28的灰度圖像。

from tensorflow.keras.datasets import mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

接下來(lái),我們需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。我們將圖像數(shù)據(jù)歸一化到0-1之間,并將標(biāo)簽數(shù)據(jù)進(jìn)行one-hot編碼:

train_images = train_images.reshape((60000, 28, 28, 1))
train_images = train_images.astype("float32") / 255

test_images = test_images.reshape((10000, 28, 28, 1))
test_images = test_images.astype("float32") / 255

from tensorflow.keras.utils import to_categorical

train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)

2. 創(chuàng)建CNN模型

我們將使用Keras創(chuàng)建一個(gè)簡(jiǎn)單的CNN模型,包括卷積層、池化層、全連接層等。模型的結(jié)構(gòu)如下:

  • 卷積層:使用32個(gè)3x3的卷積核,激活函數(shù)為ReLU;
  • 池化層:使用2x2的最大池化;
  • 卷積層:使用64個(gè)3x3的卷積核,激活函數(shù)為ReLU;
  • 池化層:使用2x2的最大池化;
  • 全連接層:包含128個(gè)神經(jīng)元,激活函數(shù)為ReLU;
  • 輸出層:包含10個(gè)神經(jīng)元,激活函數(shù)為softmax。
from tensorflow.keras import layers
from tensorflow.keras import models

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation="relu", input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation="relu"))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(128, activation="relu"))
model.add(layers.Dense(10, activation="softmax"))

3. 訓(xùn)練CNN模型

我們將使用訓(xùn)練數(shù)據(jù)集訓(xùn)練CNN模型,并在測(cè)試數(shù)據(jù)集上評(píng)估模型性能。我們將使用交叉熵?fù)p失函數(shù)和Adam優(yōu)化器,訓(xùn)練10個(gè)epoch。

model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])

model.fit(train_images, train_labels, epochs=10, batch_size=64)

test_loss, test_acc = model.evaluate(test_images, test_labels)
print("Test accuracy: {:.2f}%".format(test_acc * 100))

4. 使用CNN模型進(jìn)行預(yù)測(cè)

訓(xùn)練好CNN模型后,我們可以用它對(duì)新的圖像數(shù)據(jù)進(jìn)行預(yù)測(cè)。下面我們將隨機(jī)選擇一個(gè)測(cè)試圖像,并使用模型進(jìn)行預(yù)測(cè)。

import numpy as np
import matplotlib.pyplot as plt

index = np.random.randint(0, len(test_images))
image = test_images[index]

plt.imshow(image.reshape(28, 28), cmap="gray")
plt.show()

predictions = model.predict(np.expand_dims(image, axis=0))
predicted_label = np.argmax(predictions)

print("Predicted label:", predicted_label)

上述代碼將展示一個(gè)隨機(jī)選擇的手寫數(shù)字圖像,并輸出模型預(yù)測(cè)的結(jié)果。

這就是如何在Python中使用Keras創(chuàng)建和訓(xùn)練一個(gè)簡(jiǎn)單的CNN模型進(jìn)行手寫數(shù)字分類。在實(shí)際應(yīng)用中,可以根據(jù)需求調(diào)整CNN模型的結(jié)構(gòu)和參數(shù)以優(yōu)化性能。

到此這篇關(guān)于Python中卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門教程分分享的文章就介紹到這了,更多相關(guān)Python卷積神經(jīng)網(wǎng)絡(luò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python面向?qū)ο笾涌?、抽象類與多態(tài)詳解

    Python面向?qū)ο笾涌?、抽象類與多態(tài)詳解

    這篇文章主要介紹了Python面向?qū)ο笾涌凇⒊橄箢惻c多態(tài),結(jié)合實(shí)例形式詳細(xì)分析了Python面向?qū)ο笾薪涌?、抽象類及多態(tài)的概念、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-08-08
  • 一文帶你搞懂Python中的數(shù)據(jù)容器

    一文帶你搞懂Python中的數(shù)據(jù)容器

    這篇文章主要為大家詳細(xì)介紹了Python中數(shù)據(jù)容器的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的可以了解一下
    2022-11-11
  • python數(shù)學(xué)建模之Numpy?應(yīng)用介紹與Pandas學(xué)習(xí)

    python數(shù)學(xué)建模之Numpy?應(yīng)用介紹與Pandas學(xué)習(xí)

    這篇文章主要介紹了python數(shù)學(xué)建模之Numpy?應(yīng)用介紹與Pandas學(xué)習(xí),NumPy?是一個(gè)運(yùn)行速度非常快的數(shù)學(xué)庫(kù),一個(gè)開(kāi)源的的python科學(xué)計(jì)算庫(kù),主要用于數(shù)組、矩陣計(jì)算
    2022-07-07
  • Pandas中resample方法詳解

    Pandas中resample方法詳解

    這篇文章主要介紹了Pandas中resample方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python操作MySQL的方法詳細(xì)解讀

    Python操作MySQL的方法詳細(xì)解讀

    這篇文章主要介紹了Python操作MySQL的方法詳細(xì)解讀,在Python中,通過(guò)使用第三方庫(kù):pymysql,完成對(duì)MySQL數(shù)據(jù)庫(kù)的操作,Python操作MySQL并不難,難點(diǎn)是如何編寫合適的SQL語(yǔ)句,需要的朋友可以參考下
    2023-11-11
  • Python run()函數(shù)和start()函數(shù)的比較和差別介紹

    Python run()函數(shù)和start()函數(shù)的比較和差別介紹

    這篇文章主要介紹了Python run()函數(shù)和start()函數(shù)的比較和差別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Pytorch實(shí)現(xiàn)圖像識(shí)別之?dāng)?shù)字識(shí)別(附詳細(xì)注釋)

    Pytorch實(shí)現(xiàn)圖像識(shí)別之?dāng)?shù)字識(shí)別(附詳細(xì)注釋)

    這篇文章主要介紹了Pytorch實(shí)現(xiàn)圖像識(shí)別之?dāng)?shù)字識(shí)別(附詳細(xì)注釋),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python簡(jiǎn)單生成隨機(jī)姓名的方法示例

    Python簡(jiǎn)單生成隨機(jī)姓名的方法示例

    這篇文章主要介紹了Python簡(jiǎn)單生成隨機(jī)姓名的方法,結(jié)合實(shí)例形式分析了Python基于random模塊生成隨機(jī)字符串組合的相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • pydantic?resolve解決嵌套數(shù)據(jù)結(jié)構(gòu)生成痛點(diǎn)分析

    pydantic?resolve解決嵌套數(shù)據(jù)結(jié)構(gòu)生成痛點(diǎn)分析

    這篇文章主要為大家介紹了pydantic?resolve解決嵌套數(shù)據(jù)結(jié)構(gòu)生成痛點(diǎn)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Python?numpy中的ndarray介紹

    Python?numpy中的ndarray介紹

    這篇文章主要介紹了Python?numpy中的ndarray,numpy?模塊通常被稱為?matplotlib?模塊伴侶,numpy可以方便快捷地對(duì)大量數(shù)據(jù)進(jìn)行科學(xué)計(jì)算,為matplotlib?繪制圖表提供數(shù)據(jù),下面來(lái)看看文章內(nèi)容的詳細(xì)介紹吧
    2022-01-01

最新評(píng)論