濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)

Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)

熱門標(biāo)簽:北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版 市場(chǎng)上的電銷機(jī)器人 北京電銷外呼系統(tǒng)加盟 地圖標(biāo)注面積 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 朝陽(yáng)手機(jī)外呼系統(tǒng) 小蘇云呼電話機(jī)器人 佛山400電話辦理 儋州電話機(jī)器人

一、卷積神經(jīng)網(wǎng)絡(luò)

Yann LeCun 和Yoshua Bengio在1995年引入了卷積神經(jīng)網(wǎng)絡(luò),也稱為卷積網(wǎng)絡(luò)或CNN。CNN是一種特殊的多層神經(jīng)網(wǎng)絡(luò),用于處理具有明顯網(wǎng)格狀拓?fù)涞臄?shù)據(jù)。其網(wǎng)絡(luò)的基礎(chǔ)基于稱為卷積的數(shù)學(xué)運(yùn)算。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)的類型

以下是一些不同類型的CNN:

  • 1D CNN:1D CNN 的輸入和輸出數(shù)據(jù)是二維的。一維CNN大多用于時(shí)間序列。
  • 2D CNNN:2D CNN的輸入和輸出數(shù)據(jù)是三維的。我們通常將其用于圖像數(shù)據(jù)問(wèn)題。
  • 3D CNNN:3D CNN的輸入和輸出數(shù)據(jù)是四維的。一般在3D圖像上使用3D CNN,例如MRI(磁共振成像),CT掃描(甲CT掃描或計(jì)算機(jī)斷層掃描(以前稱為計(jì)算機(jī)軸向斷層或CAT掃描)是一種醫(yī)學(xué)成像 技術(shù)中使用的放射學(xué)獲得用于非侵入性詳述的身體的圖像診斷的目的)和其他復(fù)雜應(yīng)用程序的DICOM圖像(醫(yī)學(xué)數(shù)字成像)

二、網(wǎng)絡(luò)架構(gòu)

以下是CNN中不同層的網(wǎng)絡(luò)架構(gòu):

  • 卷積層
  • 池化層
  • 全連接層

CNN架構(gòu)的完整概述

三、卷積

卷積是對(duì)名為fg的兩個(gè)函數(shù)的數(shù)學(xué)計(jì)算,得出第三個(gè)函數(shù)(f * g)。第三個(gè)功能揭示了一個(gè)形狀如何被另一個(gè)形狀修改。其數(shù)學(xué)公式如下:

h ( x , y ) = f ( x , y ) ∗ g ( x , y ) h(x,y)=f(x,y)*g(x,y) h(x,y)=f(x,y)∗g(x,y)

卷積有幾個(gè)非常重要的概念:遮罩。

圖中的黃色的部分的就是遮罩

四、卷積層

卷積層是CNN的核心構(gòu)建塊。CNN是具有一些卷積層和其他一些層的神經(jīng)網(wǎng)絡(luò)。卷積層具有幾個(gè)進(jìn)行卷積運(yùn)算的過(guò)濾器。卷積層應(yīng)用于二維輸入,由于其出色的圖像分類工作性能而非常著名。它們基于具有二維輸入的小核k的離散卷積,并且該輸入可以是另一個(gè)卷積層的輸出。

五、在Keras中構(gòu)建卷積層

from keras.models import Sequential
from keras.layers.convolutional import Conv2D
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(32, 32, 3), padding='same', activation='relu'))

上面的代碼實(shí)現(xiàn)說(shuō)明:

  • 輸出將具有32個(gè)特征圖。
  • 內(nèi)核大小將為3x3。
  • 輸入形狀為32x32,帶有三個(gè)通道。
  • padding = same。這意味著需要相同尺寸的輸出作為輸入。
  • 激活指定激活函數(shù)。

接下來(lái),使用不同的參數(shù)值構(gòu)建一個(gè)卷積層,如下所示

六、池化層

池化層它的功能是減少參數(shù)的數(shù)量,并減小網(wǎng)絡(luò)中的空間大小。我們可以通過(guò)兩種方式實(shí)現(xiàn)池化:

  • Max Pooling:表示矩形鄰域內(nèi)的最大輸出。Average Pooling:表示矩形鄰域的平均輸出
  • Max Pooling和Average Pooling減少了圖像的空間大小,提供了更少的特征和參數(shù)以供進(jìn)一步計(jì)算。

上圖顯示了帶有步幅為2的2X2濾波器的MaxPool池化層。

在Keras中實(shí)現(xiàn)Max Pool層,如下所示:

model.add(MaxPooling2D(pool_size =(2,2)))

七、全連接層

全連接層是確定最終預(yù)測(cè)的所有輸入和權(quán)重的總和,代表最后一個(gè)合并層的輸出。它將一層中的每個(gè)神經(jīng)元連接到另一層中的每個(gè)神經(jīng)元

全連接層的主要職責(zé)是進(jìn)行分類。它與softmax激活函數(shù)一起使用以得到結(jié)果。

用于多類的激活函數(shù)是softmax函數(shù),該函數(shù)以0和1(總計(jì)為1)的概率對(duì)完全連接的層進(jìn)行規(guī)范化。

帶有非線性函數(shù)“ Softmax”的Keras代碼如下:

model.add(Dense(10, activation='softmax'))

八、Python實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)

環(huán)境Google Colab

導(dǎo)入所有必需的庫(kù)

import numpy as np
import pandas as pd
from keras.optimizers import SGD
from keras.datasets import cifar10
from keras.models import Sequential
from keras.utils import np_utils as utils
from keras.layers import Dropout, Dense, Flatten
from keras.layers.convolutional import Conv2D, MaxPooling2D

加載cifar10數(shù)據(jù):

(X, y), (X_test, y_test) = cifar10.load_data()
# 規(guī)范化數(shù)據(jù)
X,X_test = X.astype('float32')/ 255.0,X_test.astype('float32')/ 255.0

轉(zhuǎn)換為分類:

y,y_test = utils.to_categorical(y,10),u.to_categorical(y_test,10)

初始化模型:

model = Sequential()

使用以下參數(shù)添加卷積層:

  • Features map = 32
  • 內(nèi)核大小= 3x3
  • 輸入形狀= 32x32
  • Channels = 3
  • Padding = 3→表示與輸入相同的尺寸輸出
model.add(Conv2D(32, (3, 3), input_shape=(32, 32, 3), padding='same', activation='relu'))
# Dropout
model.add(Dropout(0.2))
# 添加另一個(gè)卷積層 padding ='valid'表示輸出尺寸可以采用任何形式
model.add(Conv2D(32,(3,3),activation ='relu',padding ='valid'))
# 添加一個(gè)最大池化層
model.add(MaxPooling2D(pool_size =(2,2)))
# 展平
model.add(Flatten())
# Dense層 隱藏單元數(shù)為521
model.add(Dense(512, activation='relu'))
# Dropout
model.add(Dropout(0.3))
#output 
model.add(Dense(10, activation='softmax'))
# 編譯模型 激活器選擇SGD
model.compile(loss='categorical_crossentropy',             optimizer=SGD(momentum=0.5, decay=0.0004), metrics=['accuracy'])

25個(gè)epochs

model.fit(X, y, validation_data=(X_test, y_test), epochs=25,          batch_size=512)

九、總結(jié)

卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的多層神經(jīng)網(wǎng)絡(luò),主要用于提取特征。CNN使用稱為卷積和池化的兩個(gè)操作將圖像縮小為其基本特征,并使用這些特征適當(dāng)?shù)乩斫夂头诸悎D像

到此這篇關(guān)于Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 使用Tensorflow訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)鳶尾花分類
  • python神經(jīng)網(wǎng)絡(luò)編程之手寫(xiě)數(shù)字識(shí)別
  • Python利用numpy實(shí)現(xiàn)三層神經(jīng)網(wǎng)絡(luò)的示例代碼
  • python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)
  • Python如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類
  • Python創(chuàng)建簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)實(shí)例講解
  • 如何用Python 實(shí)現(xiàn)全連接神經(jīng)網(wǎng)絡(luò)(Multi-layer Perceptron)
  • Python實(shí)現(xiàn)Keras搭建神經(jīng)網(wǎng)絡(luò)訓(xùn)練分類模型教程
  • python神經(jīng)網(wǎng)絡(luò)編程實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別
  • python實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)回歸預(yù)測(cè)模型
  • 用python搭建一個(gè)花卉識(shí)別系統(tǒng)

標(biāo)簽:定西 金融催收 寧夏 龍巖 商丘 酒泉 江蘇 云南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)》,本文關(guān)鍵詞  Python,深度,學(xué),習(xí)之,實(shí)現(xiàn),;如發(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)文章
  • 下面列出與本文章《Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    沾益县| 乳山市| 阜平县| 竹山县| 富锦市| 霍城县| 股票| 赤城县| 泸州市| 洪泽县| 龙海市| 常德市| 大足县| 新密市| 合作市| 田阳县| 抚顺市| 社会| 博客| 武宁县| 三河市| 棋牌| 蓬溪县| 郓城县| 中卫市| 扶风县| 南陵县| 嘉禾县| 西城区| 宣恩县| 新丰县| 泗水县| 凌海市| 达拉特旗| 抚宁县| 温州市| 临海市| 岚皋县| 长沙市| 高雄市| 平武县|