最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

python用TensorFlow 2二維卷積神經(jīng)網(wǎng)絡CNN對圖像物體識別混淆矩陣評估|附代碼數(shù)據(jù)

2023-08-31 22:49 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=26230?

原文出處:拓端數(shù)據(jù)部落公眾號

最近我們被客戶要求撰寫關于卷積神經(jīng)網(wǎng)絡CNN的研究報告,包括一些圖形和統(tǒng)計輸出。

什么是CNN

本文演示了如何訓練一個簡單的卷積神經(jīng)網(wǎng)絡 (CNN) 來對 圖像進行分類。

Convolutional?Neural?Networks?(ConvNets 或 CNNs)是一類神經(jīng)網(wǎng)絡,已被證明在圖像識別和分類等領域非常有效。與傳統(tǒng)的多層感知器架構不同,它使用兩個稱為?convolution?和?pooling?的操作將圖像簡化為其基本特征,并使用這些特征來理解和分類圖像。

CNN重要術語

卷積層

卷積是從輸入圖像中提取特征的第一層。卷積通過使用輸入數(shù)據(jù)的小方塊學習圖像特征來保留像素之間的關系。這是一個數(shù)學運算,需要兩個輸入,例如?image matrix?和?filter?或?kernel。然后圖像矩陣的卷積乘以過濾器矩陣,稱為?Feature?Map。

使用不同濾波器對圖像進行卷積可以通過應用濾波器來執(zhí)行邊緣檢測、模糊和銳化等操作。

激活函數(shù)

由于卷積是線性操作,圖像遠非線性,非線性層通常直接放在卷積層之后,以引入?nonlinearity?激活圖。

有幾種類型的非線性操作,流行的是:

Sigmoid: sigmoid 非線性具有數(shù)學形式 f(x) = 1 / 1 + exp(-x)。它取一個實數(shù)值并將其標準化到 0 到 1 之間的范圍內(nèi)。

Tanh: Tanh 將實數(shù)值壓縮到 [-1, 1] 范圍內(nèi)。

ReLU: 線性單元 (ReLU) 計算函數(shù) ?(κ)=max (0,κ)。

Leaky?ReL:Leaky ReLU 函數(shù)只不過是 ReLU 函數(shù)的改進版本。Leaky ReLU 就是為了解決這個問題而定義的。

Maxout:Maxout 激活是 ReLU 和leaky ReLU 函數(shù)的泛化。

ELU:Exponential?Linear?Unit?或簡稱ELU,也是Rectiufied Linear Unit (ReLU)的一種變體。與leaky relu和parametric ReLU函數(shù)不同,ELU不是直線,而是使用對數(shù)曲線來定義負值。

過濾器 | 核大小 | 過濾器數(shù)量

卷積使用a?從輸入圖像kernel?中提取某些 特征內(nèi)容。核是一個矩陣,它?slide跨越圖像并與輸入相乘,從而以某種理想的方式增強輸出。

在我們深入研究之前,核是一個權重矩陣,它與輸入相乘以提取相關特征。核矩陣的維度是卷積的名稱。例如,在 中?2D?convolutions,核矩陣是?2D?matrix

一個普通的卷積層實際上由多個這樣的過濾器組成。

步長

在輸入矩陣上移動的像素數(shù)。當步長為 1 時,我們一次將過濾器移動到 1 個像素。當步長為 2 時,我們一次將過濾器移動到 2 個像素,依此類推。下圖顯示卷積將以 1 的步長工作。

填充

padding?意味著在數(shù)據(jù)的邊界處提供額外的像素。有時過濾器不能完全適合輸入圖像,那么我們將使用填充。

我們有兩個選擇:

  • 用零填充圖片(零填充),使其適合

  • 刪除過濾器不適合的圖像部分。這稱為有效填充,它只保留圖像的有效部分。

池化層

A?pooling layer?是在卷積層之后添加的新層。具體來說,在對卷積層輸出的特征圖應用非線性(例如 ReLU)之后;

當圖像太大時,池化層部分會減少參數(shù)的數(shù)量。?Spatial?pooling?也稱為?subsampling?或?downsampling?減少每個地圖的維數(shù)但保留重要信息。

空間池可以有不同的類型:

  • 最大池化

  • 平均池化

Max?pooling?從校正后的特征圖中取最大元素。計算特征圖上每個補丁的平均值稱為?average pooling。特征圖調用中每個補丁的所有元素的總和為?sum pooling.

扁平化和密集層

Flattening?正在將數(shù)據(jù)轉換為一維數(shù)組以將其輸入到下一層。我們展平卷積層的輸出以創(chuàng)建單個長特征向量。

Fully?connected layer?:傳統(tǒng)的多層感知器結構。它的輸入是一個一維向量,表示前幾層的輸出。它的輸出是附在圖像上的不同可能標簽的概率列表(例如狗、貓、鳥)。接收概率最高的標簽是分類決策。

下載數(shù)據(jù)和模型構建

該?數(shù)據(jù)集包含 60,000 張彩色圖像?10?classes,每個類別有 6,000 張圖像。數(shù)據(jù)集分為 50,000 張訓練圖像和 10,000 張測試圖像。這些類是互斥的,它們之間沒有重疊。

X_train = X_train/255X_test = X_test/255X_train.shape, X_test.shape

驗證數(shù)據(jù)

為了驗證數(shù)據(jù)集看起來是否正確,讓我們繪制測試集中的第一張圖像并顯示圖像。

plt.imshow(X_test[0])

y_test

構建 CNN 模型

下面的 8 行代碼使用一個通用模式定義了卷積基:一堆?Conv2D?、MaxPooling2D? 、?DropoutFlatten?層?Dense?。

作為輸入,a?Conv2D?采用形狀 (image_height, image_width, color_channels) 的張量。

Maxpool2D()通過對沿特征軸的每個維度在 (2,2)Downsamples?定義的窗口上取最大值來對輸入表示進行??分層?。

Dropout() 用于在訓練階段的每次更新時將隱藏單元的出邊隨機設置為 0。

Flatten()?用于將數(shù)據(jù)轉換為一維數(shù)組,用于輸入到下一層。

Dense()?層是具有 128 個神經(jīng)元的常規(guī)深度連接神經(jīng)網(wǎng)絡層。輸出層也是一個密集層,有 10 個神經(jīng)元用于 10 個類。

使用的激活函數(shù)是?softmax。Softmax 將實數(shù)向量轉換為分類概率向量。輸出向量的元素在 (0, 1) 范圍內(nèi)并且總和為 1。

model.add(Flatten())model.add(Dense(units = 128, activation='relu'))model.add(Dense(units=10, activation='softmax'))model.summary()

編譯和訓練模型

這是?compiling?模型和?fitting?訓練數(shù)據(jù)。我們將使用 10?epochs?來訓練模型。一個時期是對所提供的整個數(shù)據(jù)的迭代。??是在每個 epoch 結束時validation_data?評估和任何模型指標的?數(shù)據(jù)。loss模型不會根據(jù)這些數(shù)據(jù)進行訓練。由于指標 =?['sparse_categorical_accuracy']?模型將基于?accuracy.

history = model.fit(X_train

我們現(xiàn)在將繪制?model accuracy?and??model loss。在模型準確度中,我們將繪制訓練準確度和驗證準確度,在模型損失中,我們將繪制訓練損失和驗證損失。

# 繪制訓練和驗證的準確值epoch_range = range(1, 11)plt.plot(epoch_range, history.history['sparse_categorical_accuracy'])# 繪制訓練和驗證的損失值plt.plot(epoch_range, history.history['loss'])

y_pred = model.predict_classes(X_test)confusion_matrixmatplot

結論:

在本教程中,我們訓練了簡單的卷積神經(jīng)網(wǎng)絡 (CNN) 來對 圖像進行分類。從學習曲線圖中我們觀察到,在 3 個 epoch 之后,驗證準確度低于訓練集準確度,即我們的模型是過擬合,這意味著我們增加了模型的復雜性。還使用混淆矩陣評估模型。觀察到該模型對鳥、貓、鹿、狗等標簽的預測精度較低。

?

最受歡迎的見解

1.r語言用神經(jīng)網(wǎng)絡改進nelson-siegel模型擬合收益率曲線分析

2.r語言實現(xiàn)擬合神經(jīng)網(wǎng)絡預測和結果可視化

3.python用遺傳算法-神經(jīng)網(wǎng)絡-模糊邏輯控制算法對樂透分析

4.用于nlp的python:使用keras的多標簽文本lstm神經(jīng)網(wǎng)絡分類

5.用r語言實現(xiàn)神經(jīng)網(wǎng)絡預測股票實例

6.R語言基于Keras的小數(shù)據(jù)集深度學習圖像分類

7.用于NLP的seq2seq模型實例用Keras實現(xiàn)神經(jīng)機器翻譯

8.python中基于網(wǎng)格搜索算法優(yōu)化的深度學習模型分析糖

9.matlab使用貝葉斯優(yōu)化的深度學習


python用TensorFlow 2二維卷積神經(jīng)網(wǎng)絡CNN對圖像物體識別混淆矩陣評估|附代碼數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
云阳县| 苗栗市| 桃园县| 巴中市| 连平县| 宁晋县| 邵阳县| 苏尼特右旗| 京山县| 尤溪县| 汉中市| 黄平县| 嘉兴市| 鄄城县| 陵川县| 从江县| 岳阳县| 彰化市| 武功县| 抚顺县| 扎囊县| 丰原市| 普安县| 隆安县| 谷城县| 买车| 北川| 渑池县| 黔西县| 安岳县| 建宁县| 贵南县| 富川| 台湾省| 蚌埠市| 油尖旺区| 揭东县| 荃湾区| 合江县| 绥中县| 二连浩特市|