這篇文章主要為大家展示了如何使用keras中的卷積層和池化層,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有大慶免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。卷積層
創(chuàng)建卷積層
首先導(dǎo)入keras中的模塊
from keras.layers import Conv2D
卷積層的格式及參數(shù):
Conv2D(filters, kernel_size, strides, padding, activation='relu', input_shape)
filters: 過濾器數(shù)量
kernel_size:指定卷積窗口的高和寬的數(shù)字
strides: 卷積stride,如果不指定任何值,則strides設(shè)為1
padding: 選項(xiàng)包括'valid'和'same',默認(rèn)值為'valid'
activation: 通常為'relu',如果不指定任何值,則不應(yīng)用任何激活函數(shù),通常應(yīng)該向網(wǎng)絡(luò)中每個卷積層添加一個Relu激活函數(shù)
如果卷積層出現(xiàn)在輸入層之后,必須提供另一個input_shape參數(shù):
input_shape: 指定輸入的高度、寬度和深度的元組;如果卷積層不是網(wǎng)絡(luò)的第一個層級,則不應(yīng)該包含input_shape參數(shù)。
示例1:
假設(shè)我要構(gòu)建一個 CNN,輸入層接受的是 200 x 200 像素(對應(yīng)于高 200、寬 200、深 1 的三維數(shù)組)的灰度圖片。然后,假設(shè)我希望下一層級是卷積層,具有 16 個過濾器,每個寬和高分別為 2。在進(jìn)行卷積操作時,我希望過濾器每次跳轉(zhuǎn) 2 個像素。并且,我不希望過濾器超出圖片界限之外;也就是說,我不想用 0 填充圖片。
要構(gòu)建該卷積層,我將使用下面的代碼
Conv2D(filters=16, kernel_size=2, strides=2, activation='relu', input_shape=(200, 200, 1))
示例 2
假設(shè)我希望 CNN 的下一層級是卷積層,并將示例 1 中構(gòu)建的層級作為輸入。假設(shè)新層級是 32 個過濾器,每個的寬和高都是 3。在進(jìn)行卷積操作時,我希望過濾器每次移動 1 個像素。我希望卷積層查看上一層級的所有區(qū)域,因此不介意過濾器在進(jìn)行卷積操作時是否超過上一層級的邊緣。
然后,要構(gòu)建此層級,我將使用以下代碼:
Conv2D(filters=32, kernel_size=3, padding='same', activation='relu')
卷積層中的參數(shù)數(shù)量
卷積層中的參數(shù)數(shù)量取決于filters, kernel_size, input_shape的值
K: 卷積層中的過濾器數(shù)量, K=filters
F:卷積過濾器的高度和寬度, F = kernal_size
D_in: 上一層級的深度, D_in是input_shape元組中的最后一個值
卷積層中的參數(shù)數(shù)量計算公式為:K * F * F * D_in + K
卷積層的形狀
卷積層的形狀取決于kernal_size, input_shape, padding, stride的值
K: 卷積層中的過濾器數(shù)量,K = filters
F: 卷積過濾器的高度和寬度, F = kernal_size
H_in: 上一層級的高度
W_in: 上一層級的寬度
S: stride
卷積層的深度始終為過濾器數(shù)量K
如果padding=‘same', 那么卷積層的空間維度計算公式如下:
height = ceil(float(H_in) / float(S))
width = ceil(float(W_in) / float(S))
如果padding = ‘valid', 那么卷積層的空間維度計算公式如下:
height = ceil(float(H_in - F + 1) / float(S))
width = ceil(float(W_in - F + 1) / float(S))
可以使用如下形式檢測卷積層的維度:
from keras.models import Sequential from keras.layers import Conv2D model = Sequential() model.add(Conv2D(filters=32, kernel_size=3, strides=2, padding='same', activation='relu', input_shape=(128, 128, 3))) model.summary()
文章名稱:如何使用keras中的卷積層和池化層-創(chuàng)新互聯(lián)
當(dāng)前URL:http://www.rwnh.cn/article24/dgsgje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、品牌網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、移動網(wǎng)站建設(shè)、定制網(wǎng)站、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容