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

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

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

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

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

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

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

接下來,我們需要對數(shù)據(jù)進行預處理。我們將圖像數(shù)據(jù)歸一化到0-1之間,并將標簽數(shù)據(jù)進行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)建一個簡單的CNN模型,包括卷積層、池化層、全連接層等。模型的結(jié)構(gòu)如下:

  • 卷積層:使用32個3x3的卷積核,激活函數(shù)為ReLU;
  • 池化層:使用2x2的最大池化;
  • 卷積層:使用64個3x3的卷積核,激活函數(shù)為ReLU;
  • 池化層:使用2x2的最大池化;
  • 全連接層:包含128個神經(jīng)元,激活函數(shù)為ReLU;
  • 輸出層:包含10個神經(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. 訓練CNN模型

我們將使用訓練數(shù)據(jù)集訓練CNN模型,并在測試數(shù)據(jù)集上評估模型性能。我們將使用交叉熵損失函數(shù)和Adam優(yōu)化器,訓練10個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模型進行預測

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

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)

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

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

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

相關文章

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

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

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

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

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

    python數(shù)學建模之Numpy?應用介紹與Pandas學習

    這篇文章主要介紹了python數(shù)學建模之Numpy?應用介紹與Pandas學習,NumPy?是一個運行速度非??斓臄?shù)學庫,一個開源的的python科學計算庫,主要用于數(shù)組、矩陣計算
    2022-07-07
  • Pandas中resample方法詳解

    Pandas中resample方法詳解

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

    Python操作MySQL的方法詳細解讀

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

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

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

    Pytorch實現(xiàn)圖像識別之數(shù)字識別(附詳細注釋)

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

    Python簡單生成隨機姓名的方法示例

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

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

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

    Python?numpy中的ndarray介紹

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

最新評論