Keras卷积+池化层学习
轉(zhuǎn)自:https://keras-cn.readthedocs.io/en/latest/layers/convolutional_layer/
https://keras-cn.readthedocs.io/en/latest/layers/pooling_layer/
1.con1D
keras.layers.convolutional.Conv1D(filters, kernel_size, strides=1, padding='valid', dilation_rate=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)
一維卷積層(即時域卷積),用以在一維輸入信號上進(jìn)行鄰域濾波。當(dāng)使用該層作為首層時,需要提供關(guān)鍵字參數(shù)input_shape。例如(10,128)代表一個長為10的序列,序列中每個信號為128向量。而(None, 128)代表變長的128維向量序列。
該層生成將輸入信號與卷積核按照單一的空域(或時域)方向進(jìn)行卷積。如果use_bias=True,則還會加上一個偏置項,若activation不為None,則輸出為經(jīng)過激活函數(shù)的輸出。
常用:
-
filters:卷積核的數(shù)目(即輸出的維度)
-
kernel_size:整數(shù)或由單個整數(shù)構(gòu)成的list/tuple,卷積核的空域或時域窗長度
-
strides:整數(shù)或由單個整數(shù)構(gòu)成的list/tuple,為卷積的步長。任何不為1的strides均與任何不為1的dilation_rate均不兼容
- padding:補(bǔ)0策略,為“valid”, “same”?
- activation:激活函數(shù),為預(yù)定義的激活函數(shù)名。如果不指定該參數(shù),將不會使用任何激活函數(shù)
- use_bias:布爾值,是否使用偏置項
- kernel_regularizer:施加在權(quán)重上的正則項
*可以將Convolution1D看作Convolution2D的快捷版,對例子中(10,32)的信號進(jìn)行1D卷積相當(dāng)于對其進(jìn)行卷積核為(filter_length, 32)的2D卷積。?
//以上這一句涉及到在1D的情況下的卷積計算過程。
2.Conv2D
keras.layers.convolutional.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)
?
二維卷積層,即對圖像的空域卷積。該層對二維輸入進(jìn)行滑動窗卷積,當(dāng)使用該層作為第一層時,應(yīng)提供input_shape參數(shù)。例如input_shape = (128,128,3)代表128*128的彩色RGB圖像(data_format='channels_last')
//1D多用來對序列數(shù)據(jù)處理,比如自然語言和語音。2D多用來做圖像。
-
filters:卷積核的數(shù)目(即輸出的維度)
-
kernel_size:單個整數(shù)或由兩個整數(shù)構(gòu)成的list/tuple,卷積核的寬度和長度。如為單個整數(shù),則表示在各個空間維度的相同長度。
-
strides:單個整數(shù)或由兩個整數(shù)構(gòu)成的list/tuple,為卷積的步長。如為單個整數(shù),則表示在各個空間維度的相同步長。任何不為1的strides均與任何不為1的dilation_rate均不兼容
-
padding:補(bǔ)0策略,為“valid”, “same” ?!皏alid”代表只進(jìn)行有效的卷積,即對邊界數(shù)據(jù)不處理?!皊ame”代表保留邊界處的卷積結(jié)果,通常會導(dǎo)致輸出shape與輸入shape相同。
-
activation:激活函數(shù),為預(yù)定義的激活函數(shù)名(參考激活函數(shù)),或逐元素(element-wise)的Theano函數(shù)。如果不指定該參數(shù),將不會使用任何激活函數(shù)(即使用線性激活函數(shù):a(x)=x)
- data_format:字符串,“channels_first”或“channels_last”之一,代表圖像的通道維的位置。該參數(shù)是Keras 1.x中的image_dim_ordering,“channels_last”對應(yīng)原本的“tf”,“channels_first”對應(yīng)原本的“th”。以128x128的RGB圖像為例,“channels_first”應(yīng)將數(shù)據(jù)組織為(3,128,128),而“channels_last”應(yīng)將數(shù)據(jù)組織為(128,128,3)。該參數(shù)的默認(rèn)值是
~/.keras/keras.json中設(shè)置的值,若從未設(shè)置過,則為“channels_last”。
3.最大池化1D層
keras.layers.pooling.MaxPooling1D(pool_size=2, strides=None, padding='valid')
?
-
pool_size:整數(shù),池化窗口大小
-
strides:整數(shù)或None,下采樣因子,例如設(shè)2將會使得輸出shape為輸入的一半,若為None則默認(rèn)值為pool_size。
-
padding:‘valid’或者‘same’
4.最大池化2D層
keras.layers.pooling.MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)
?
-
pool_size:整數(shù)或長為2的整數(shù)tuple,代表在兩個方向(豎直,水平)上的下采樣因子,如取(2,2)將使圖片在兩個維度上均變?yōu)樵L的一半。為整數(shù)意為各個維度值相同且為該數(shù)字。
-
strides:整數(shù)或長為2的整數(shù)tuple,或者None,步長值。
-
border_mode:‘valid’或者‘same’
5.flatten展平
keras.layers.Flatten(data_format=None)
data_format:一個字符串,其值為?channels_last(默認(rèn)值)或者?channels_first。
model = Sequential() model.add(Conv2D(64, (3, 3),input_shape=(3, 32, 32), padding='same',)) # 現(xiàn)在:model.output_shape == (None, 64, 32, 32) model.add(Flatten()) # 現(xiàn)在:model.output_shape == (None, 65536)
?
//給的這個例子輸入維度中第一維是通道。
?6.Input
keras.engine.input_layer.Input()
- shape: 一個尺寸元組(整數(shù)),不包含批量大小。 例如,
shape=(32,)?表明期望的輸入是按批次的 32 維向量。 - batch_shape: 一個尺寸元組(整數(shù)),包含批量大小。 例如,
batch_shape=(10, 32)?表明期望的輸入是 10 個 32 維向量。?batch_shape=(None, 32)?表明任意批次大小的 32 維向量。 - name: 一個可選的層的名稱的字符串。 在一個模型中應(yīng)該是唯一的(不可以重用一個名字兩次)。 如未提供,將自動生成。
- dtype: 輸入所期望的數(shù)據(jù)類型,字符串表示 (
float32,?float64,?int32...) - sparse: 一個布爾值,指明需要創(chuàng)建的占位符是否是稀疏的。
- tensor: 可選的可封裝到?
Input?層的現(xiàn)有張量。 如果設(shè)定了,那么這個層將不會創(chuàng)建占位符張量。
?
轉(zhuǎn)載于:https://www.cnblogs.com/BlueBlueSea/p/11058421.html
總結(jié)
以上是生活随笔為你收集整理的Keras卷积+池化层学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机显示屏多少钱啊?
- 下一篇: 鼋头渚停车场收费标准