自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

講透一個(gè)強(qiáng)大的算法模型,CNN?。?/h1>

人工智能
卷積操作是將一個(gè)小的濾波器(filter)或者稱為卷積核(kernel)在輸入數(shù)據(jù)上滑動(dòng),進(jìn)行逐元素的點(diǎn)積運(yùn)算,從而生成一個(gè)特征圖(feature map)。

今天給大家介紹一個(gè)超強(qiáng)的算法模型,CNN

卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種深度學(xué)習(xí)模型,主要用于處理具有網(wǎng)格結(jié)構(gòu)(如圖像)的數(shù)據(jù)。CNN 在計(jì)算機(jī)視覺領(lǐng)域表現(xiàn)尤為突出,廣泛應(yīng)用于圖像分類、目標(biāo)檢測(cè)、圖像生成等任務(wù)。

CNN 通過引入卷積層、池化層等特殊層,能夠有效提取數(shù)據(jù)的局部特征,同時(shí)減少參數(shù)量,提升訓(xùn)練效率和模型的泛化能力。

CNN 的基本組成結(jié)構(gòu)

一個(gè)典型的卷積神經(jīng)網(wǎng)絡(luò)通常由以下幾個(gè)部分組成。

卷積層

卷積層是 CNN 的核心組件。它通過卷積操作來(lái)提取輸入數(shù)據(jù)的局部特征。

卷積操作是將一個(gè)小的濾波器(filter)或者稱為卷積核(kernel)在輸入數(shù)據(jù)上滑動(dòng),進(jìn)行逐元素的點(diǎn)積運(yùn)算,從而生成一個(gè)特征圖(feature map)。

  • 局部連接:卷積核只作用于輸入圖像的局部區(qū)域,因此每個(gè)輸出特征僅與輸入圖像的一部分有關(guān)。
  • 權(quán)重共享:卷積核在輸入圖像的不同區(qū)域重復(fù)使用,從而減少了模型的參數(shù)數(shù)量。

圖片圖片

池化層

池化層的作用是減少特征圖的尺寸,降低計(jì)算復(fù)雜度,同時(shí)保留重要特征。常見的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。

  • 最大池化:選取池化窗口內(nèi)的最大值作為輸出,保留了最顯著的特征。
  • 平均池化:計(jì)算池化窗口內(nèi)的平均值,平滑特征圖。

圖片圖片

全連接層

卷積層和池化層的輸出(特征圖)一般會(huì)展開成一個(gè)一維向量,并輸入到全連接層。

全連接層類似于傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)與上一層的所有節(jié)點(diǎn)相連。

全連接層用于綜合卷積層和池化層提取的特征并輸出最終的分類結(jié)果。

圖片圖片

卷積神經(jīng)網(wǎng)絡(luò)的工作流程:

圖片圖片

  1. 輸入層:輸入圖像數(shù)據(jù)。
  2. 卷積層:提取圖像的局部特征,通過多個(gè)卷積層逐步提取更高層次的特征。
  3. 池化層:對(duì)特征圖進(jìn)行下采樣,減少數(shù)據(jù)維度。
  4. 激活函數(shù):引入非線性特性,使模型能夠?qū)W習(xí)復(fù)雜的特征。
  5. 全連接層:將提取的特征整合并映射到分類空間。
  6. 輸出層:通常使用 Softmax 函數(shù)進(jìn)行多分類任務(wù),輸出每個(gè)類別的概率分布。

案例分享

以下是一個(gè)使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行手寫數(shù)字識(shí)別的示例代碼,利用的是經(jīng)典的 MNIST 數(shù)據(jù)集。

首先導(dǎo)入必要的 python 庫(kù)。

import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt

然后加載和預(yù)處理數(shù)據(jù)。

# 加載 MNIST 數(shù)據(jù)集
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()

train_images = train_images.reshape((train_images.shape[0], 28, 28, 1)).astype('float32') / 255
test_images = test_images.reshape((test_images.shape[0], 28, 28, 1)).astype('float32') / 255

plt.figure(figsize=(8, 4))
for i in range(10):
    plt.subplot(2, 5, i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i].reshape(28, 28), cmap=plt.cm.binary)
    plt.xlabel(train_labels[i])
plt.show()

圖片圖片

接下來(lái),構(gòu)建 CNN 模型

# 構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型
model = models.Sequential()

# 第一層卷積,32 個(gè)過濾器,大小為 3x3,激活函數(shù)為 ReLU,輸入形狀為 28x28x1
model.add(layers.Conv2D(32, (3, 3), activatinotallow='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))  # 最大池化層

# 第二層卷積,64 個(gè)過濾器,大小為 3x3
model.add(layers.Conv2D(64, (3, 3), activatinotallow='relu'))
model.add(layers.MaxPooling2D((2, 2)))

# 第三層卷積,64 個(gè)過濾器,大小為 3x3
model.add(layers.Conv2D(64, (3, 3), activatinotallow='relu'))

# 全連接層
model.add(layers.Flatten())  # 將卷積層的輸出展開為一維向量
model.add(layers.Dense(64, activatinotallow='relu'))  # 全連接層
model.add(layers.Dense(10, activatinotallow='softmax'))  # 輸出層,10 個(gè)分類,使用 softmax 激活

model.summary()

圖片圖片

然后,編譯和訓(xùn)練模型:

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

history = model.fit(train_images, train_labels, epochs=5, 
                    validation_data=(test_images, test_labels))


# 繪制訓(xùn)練和驗(yàn)證損失曲線
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend(loc='upper right')
plt.show()

圖片圖片

最后,對(duì)測(cè)試集進(jìn)行預(yù)測(cè):

predictions = model.predict(test_images)
plt.figure(figsize=(8, 4))
for i in range(10):
    plt.subplot(2, 5, i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(test_images[i].reshape(28, 28), cmap=plt.cm.binary)
    plt.xlabel(f"True: {test_labels[i]}, Pred: {predictions[i].argmax()}")
plt.show()

圖片圖片


責(zé)任編輯:武曉燕 來(lái)源: 程序員學(xué)長(zhǎng)
相關(guān)推薦

2024-07-30 08:08:49

2024-07-19 08:21:24

2024-06-06 09:44:33

2024-08-21 08:21:45

CNN算法神經(jīng)網(wǎng)絡(luò)

2024-01-08 13:40:00

并發(fā)安全? 數(shù)量

2023-01-08 21:05:45

數(shù)據(jù)預(yù)警模型

2024-08-22 08:24:51

算法CNN深度學(xué)習(xí)

2020-03-26 09:18:54

高薪本質(zhì)因素

2024-02-19 08:26:59

wxPython界面庫(kù)開發(fā)

2015-03-30 12:20:07

DemoStoryboard

2025-01-13 12:00:00

反射Java開發(fā)

2020-11-15 18:20:44

GnuCash開源會(huì)計(jì)軟

2021-07-01 09:43:44

Python函數(shù)參數(shù)

2023-11-03 08:27:46

2023-10-10 08:22:12

Tesseract庫(kù)開源

2024-08-13 17:09:00

架構(gòu)分庫(kù)分表開發(fā)

2020-08-04 10:56:09

進(jìn)程線程協(xié)程

2020-07-16 09:02:45

aPaaS云計(jì)算aPaaS平臺(tái)

2021-03-06 07:00:00

awk文本分析工具Linux

2024-05-09 08:08:32

SpringBinderJava
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)