您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“CNN卷積函數(shù)Conv2D()各參數(shù)怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“CNN卷積函數(shù)Conv2D()各參數(shù)怎么使用”吧!
首先我們放出tf2.0關(guān)于tf.keras.layers.Conv2D()函數(shù)的官方文檔,然后逐一對(duì)每個(gè)參數(shù)的含義和用法進(jìn)行解釋?zhuān)?/p>
tf.keras.layers.Conv2D( filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, **kwargs )
從這個(gè)函數(shù)的定義能看出來(lái),filters ,kernel_size過(guò)濾器個(gè)數(shù)和卷積核尺寸,這是兩個(gè)位置參數(shù),沒(méi)有默認(rèn)值,必須給。
后面的那個(gè)多參數(shù),都是關(guān)鍵字參數(shù)(有等于號(hào)的),都是有默認(rèn)值的,可以不寫(xiě),下面來(lái)逐一分析每個(gè)參數(shù)的含義:
這是第一個(gè)參數(shù),位置是固定的,含義是過(guò)濾器個(gè)數(shù),或者叫卷積核個(gè)數(shù),這個(gè)與卷積后的輸出通道數(shù)一樣,比如下面filters為5的時(shí)候,卷積輸出的通道數(shù)(最后一位)就是5
filters卷積核個(gè)數(shù)為8的時(shí)候,輸出的通道數(shù)就是8
卷積核尺寸,一般為3×3,或者5×5,此處用2個(gè)整數(shù)的元組或列表表示,比如(3,3),[5,5],如果height, width長(zhǎng)寬一樣,直接用一個(gè)整數(shù)表示就行,比如3或者5,卷積后的,卷積后的height,width的計(jì)算公式如下:滑動(dòng)步長(zhǎng)為strides,卷積核的尺寸為S,輸入的尺寸為P,padding = ‘valid“
height =width = (P-S)/strides +1,
此處 輸入形狀為20×20,卷積核為3×3,滑動(dòng)步長(zhǎng)為1,所以輸出為(20-3)/1 +1 =18
此處,輸入為20×20,卷積核為5×5,滑動(dòng)步長(zhǎng)為2×2,所以輸出的形狀為,(20-5)/2 +1向下取整,等于8,
默認(rèn)橫向和縱向滑動(dòng)均為1,這個(gè)與上面的 卷積核size配合使用,用來(lái)計(jì)算輸出的形狀,
height =width = (P-S)/strides +1,
默認(rèn)是邊緣不填充
此處只有兩個(gè)取值,另一個(gè)取值為 “same”,表示邊緣用0填充,如果padding =“same”,則輸出的形狀為 height =width = P/strides ,向上取整,如下圖,
輸入的數(shù)據(jù)格式
此處只有兩個(gè)取值 ,“channels_first”,和“channels_last”,即輸入的數(shù)據(jù)格式中,通道數(shù)是第一個(gè)還是最后一個(gè),默認(rèn)為“channels_last”,即默認(rèn)輸入數(shù)據(jù)的格式中,通道數(shù)為最后一個(gè)。
當(dāng)data_format = "channels_first"的時(shí)候,輸入和輸出的shape格式為
(batch_size, channels, height, width)即(圖片數(shù)量,通道數(shù),長(zhǎng),寬)正如下圖所示:
這個(gè)含義是卷積核的膨脹系數(shù),
此處的作用是將卷積核進(jìn)行形狀膨脹,新的位置用0填充,新卷積核的尺寸和膨脹系數(shù)的計(jì)算公式如下:
原卷積核的尺寸為S ,膨脹系數(shù)為k,則膨脹后的卷積核尺寸為
size = k×(S-1)+1
此處的含義是激活函數(shù),
相當(dāng)于經(jīng)過(guò)卷積輸出后,在經(jīng)過(guò)一次激活函數(shù),常見(jiàn)的激活函數(shù)有relu,softmax,selu,等
偏置項(xiàng)
此處取值為布爾值,0或者1,0表示沒(méi)有增加bias,1表示有。
kernel_initializer
:卷積核初始化,
bias_initializer
:偏差值初始化,
kernel_regularizer
:卷積核正則化
bias_regularizer
:偏差正則化
activity_regularizer
:這個(gè)地方也是一個(gè)正則化
kernel_constraint
:卷積核約束
bias_constraint
:偏差約束。
這幾個(gè)參數(shù)不常用,
input_shape
這個(gè)是指輸入的形狀,一般是4D的,(batch size, height, width, channels),也可以不定義,那就是默認(rèn)輸入的形狀。
到此,相信大家對(duì)“CNN卷積函數(shù)Conv2D()各參數(shù)怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。