<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          越來越卷,教你使用Python實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)(CNN)

          共 3329字,需瀏覽 7分鐘

           ·

          2021-12-15 19:12

          @Author:Runsen

          https://blog.csdn.net/weixin_44510615/article/details/117409037

          卷積神經(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ù)問題。

          • 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é)公式如下:

          卷積方程

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

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

          卷積層

          卷積層是CNN的核心構(gòu)建塊。CNN是具有一些卷積層和其他一些層的神經(jīng)網(wǎng)絡(luò)。卷積層具有幾個(gè)進(jìn)行卷積運(yùn)算的過濾器。卷積層應(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)說明:

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

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

          池化層

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

          • Max Pooling:表示矩形鄰域內(nèi)的最大輸出。
          • Average Pooling:表示矩形鄰域的平均輸出

          Max Pooling和Average Pooling減少了圖像的空間大小,提供了更少的特征和參數(shù)以供進(jìn)一步計(jì)算。

          池化層中的輸入和輸出矩陣

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

          Max Pooling和Average Pooling的區(qū)別

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

          model.add(MaxPooling2D(pool_size?=(22)))

          全連接層

          全連接層是確定最終預(yù)測的所有輸入和權(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)入所有必需的庫

          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像




          Python“寶藏級(jí)”公眾號(hào)【Python之王】專注于Python領(lǐng)域,會(huì)爬蟲,數(shù)分,C++,tensorflow和Pytorch等等。

          近 2年共原創(chuàng) 100+ 篇技術(shù)文章。創(chuàng)作的精品文章系列有:

          日常收集整理了一批不錯(cuò)的?Python?學(xué)習(xí)資料,有需要的小伙可以自行免費(fèi)領(lǐng)取。

          獲取方式如下:公眾號(hào)回復(fù)資料。領(lǐng)取Python等系列筆記,項(xiàng)目,書籍,直接套上模板就可以用了。資料包含算法、python、算法小抄、力扣刷題手冊(cè)和 C++ 等學(xué)習(xí)資料!


          瀏覽 73
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  美女尻屄视频 | 九九草色播免费视频观看 | 一级a性色生活久久无 | 黄色A视频 | 一级视频在线观看免费 |