日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Keras.layers各种层介绍,网络层、卷积层、池化层 等

發布時間:2024/9/27 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Keras.layers各种层介绍,网络层、卷积层、池化层 等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【轉載】Keras.layers各種層介紹 - 心冰之海 - bk園 https://www.cnblogs.com/lhxsoft/p/13534667.html

文章導航

    • 一、網絡層
      • 1、常用網絡層
        • 1.1、Dense層(全連接層)
        • 1.2、Activation層 ,激活層
        • 1.3、dropout層,“隨機丟棄層”
        • 1.4、Flatten層,“壓平層”
        • 1.5、Reshape層,“重塑張量形狀 層”
      • 2、卷積層Convolutional
        • 2.1、Conv1D層,一維卷積層
      • 3、池化層Pooling
        • 3.1、MaxPooling1D層 最大值池化
        • 3.2、AveragePooling1D層,平均值池化
      • 4、循環層Recurrent
        • 2.4.3、LSTM層

本文章向大家介紹KerasKeras.layers各種層介紹,主要包括Keras,Keras.layers各種層介紹使用實例、應用技巧、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。

一、網絡層

keras的層主要包括:

常用層(Core)、卷積層(Convolutional)、池化層(Pooling)、局部連接層(dense)、遞歸層(Recurrent)、嵌入層( Embedding)、高級激活層、規范層、噪聲層、包裝層,當然也可以編寫自己的層。

對于層的操作

layer.get_weights() #返回該層的權重(numpy array) layer.set_weights(weights)#將權重加載到該層 config = layer.get_config()#保存該層的配置 layer = layer_from_config(config)#加載一個配置到該層#如果層僅有一個計算節點(即該層不是共享層),則可以通過下列方法獲得輸入張量、輸出張量、輸入數據的形狀和輸出數據的形狀: layer.input layer.output layer.input_shape layer.output_shape#如果該層有多個計算節點??梢允褂孟旅娴姆椒?/span> layer.get_input_at(node_index) layer.get_output_at(node_index) layer.get_input_shape_at(node_index) layer.get_output_shape_at(node_index)

1、常用網絡層

1.1、Dense層(全連接層)

keras.layers.core.Dense(units,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)

參數:

  • units:大于0的整數,代表該層的輸出維度。

  • use_bias:布爾值,是否使用偏置項

  • kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用于初始化權重的初始化器。

  • bias_initializer:偏置向量初始化方法,為預定義初始化方法名的字符串,或用于初始化偏置向量的初始化器。

  • regularizer:正則項,kernel為權重的、bias為偏執的,activity為輸出的

  • constraints:約束項,kernel為權重的,bias為偏執的。

  • activation:激活函數,為預定義的激活函數名(參考激活函數),或逐元素(element-wise)的Theano函數。如果不指定該參數,將不會使用任何激活函數(即使用線性激活函數:a(x)=x)

  • input_dim:該層輸入的維度

本層實現的運算為
output=activation(dot(input,kernel)+bias)
個人理解,即:
輸出 = 激活函數【(輸入 點乘 * 卷積核 )+偏置】

1.2、Activation層 ,激活層

keras.layers.core.Activation(activation)

激活層對一個層的輸出,施加激活函數(sigmod, relu 等等)

參數:

  • activation:將要使用的激活函數,為預定義激活函數名或一個Tensorflow/Theano的函數。參考激活函數

輸入shape:任意,當使用激活層作為第一層時,要指定input_shape
輸出shape:與輸入shape相同

1.3、dropout層,“隨機丟棄層”

keras.layers.core.Dropout(rate, noise_shape=None, seed=None)

為輸入數據施加Dropout操作。
Dropout將在訓練過程中每次更新參數時按一定概率(rate) 隨機斷開輸入神經元,Dropout層用于防止過擬合

參數

  • rate:0~1的浮點數,控制需要斷開的神經元的比例

  • noise_shape:整數張量,為將要應用在輸入上的二值Dropout mask的shape,例如你的輸入為(batch_size, timesteps, features),并且你希望在各個時間步上的Dropout mask都相同,則可傳入noise_shape=(batch_size, 1, features)。

  • seed:整數,使用的隨機數種子

個人理解,注意:使用的隨機數種子seed固定,則每次進行的“隨機丟棄神經元”的操作也是固定的。

1.4、Flatten層,“壓平層”

keras.layers.core.Flatten()

Flatten層用來將輸入“壓平”,即把多維的輸入一維化,常用在從卷積層全連接層過渡。Flatten不影響batch的大小。

例子:

model = Sequential() model.add(Convolution2D(64, 3, 3,border_mode='same',input_shape=(3, 32, 32))) # now: model.output_shape == (None, 64, 32, 32)model.add(Flatten()) # now: model.output_shape == (None, 65536)

1.5、Reshape層,“重塑張量形狀 層”

keras.layers.core.Reshape(target_shape)

Reshape層用來將輸入shape轉換為特定的shape

參數

  • target_shape:目標shape,為整數的tuple,不包含樣本數目的維度(batch大小)

輸入shape:任意,但輸入的shape必須固定。當使用該層為模型首層時,需要指定input_shape參數
輸出shape:(batch_size,)+target_shape

2、卷積層Convolutional

2.1、Conv1D層,一維卷積層

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)

一維卷積層(即時域卷積),用以在一維輸入信號上進行鄰域濾波。當使用該層作為首層時,需要提供關鍵字參數input_shape。例如(10,128)代表一個長為10的序列,序列中每個信號為128向量。而(None, 128)代表變長的128維向量序列。

該層生成將輸入信號與卷積核按照單一的空域(或時域)方向進行卷積。如果use_bias=True,則還會加上一個偏置項,若activation不為None,則輸出為經過激活函數的輸出。

參數

  • filters:卷積核的數目(即輸出的維度)
  • kernel_size:整數或由單個整數構成的list/tuple,卷積核的空域或時域窗長度
  • strides:整數或由單個整數構成的list/tuple,為卷積的步長。任何不為1的strides均與任何不為1的dilation_rate均不兼容
  • padding:補0策略,為“valid”, “same” 或“causal”,“causal”將產生因果(膨脹的)卷積,即output[t]不依賴于input[t+1:]。當對不能違反時間順序的時序信號建模時有用。參考WaveNet: A Generative Model for Raw Audio, section 2.1.。“valid”代表只進行有效的卷積,即對邊界數據不處理?!皊ame”代表保留邊界處的卷積結果,通常會導致輸出shape與輸入shape相同。
  • activation:激活函數,為預定義的激活函數名(參考激活函數),或逐元素(element-wise)的Theano函數。如果不指定該參數,將不會使用任何激活函數(即使用線性激活函數:a(x)=x)
  • dilation_rate:整數或由單個整數構成的list/tuple,指定dilated convolution中的膨脹比例。任何不為1的dilation_rate均與任何不為1的strides均不兼容。
  • use_bias:布爾值,是否使用偏置項
  • kernel_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用于初始化權重的初始化器。參考initializers
  • bias_initializer:權值初始化方法,為預定義初始化方法名的字符串,或用于初始化權重的初始化器。參考initializers
  • kernel_regularizer:施加在權重上的正則項,為Regularizer對象
  • bias_regularizer:施加在偏置向量上的正則項,為Regularizer對象
  • activity_regularizer:施加在輸出上的正則項,為Regularizer對象
  • kernel_constraints:施加在權重上的約束項,為Constraints對象
  • bias_constraints:施加在偏置上的約束項,為Constraints對象

輸入shape:形如(samples,steps,input_dim)的3D張量
輸出shape:形如(samples,new_steps,nb_filter)的3D張量,因為有向量填充的原因,steps的值會改變

【Tips】可以將Convolution1D看作Convolution2D的快捷版,對例子中(10,32)的信號進行1D卷積相當于對其進行卷積核為(filter_length, 32)的2D卷積。

3、池化層Pooling

3.1、MaxPooling1D層 最大值池化

keras.layers.pooling.MaxPooling1D(pool_size=2, strides=None, padding='valid')

對時域1D信號進行最大值池化。

參數

  • pool_size:整數,池化窗口大小
  • strides:整數或None,下采樣因子,例如設2將會使得輸出shape為輸入的一半,若為None則默認值為pool_size。
  • padding:‘valid’或者‘same’

輸入shape:形如(samples,steps,features)的3D張量
輸出shape:形如(samples,downsampled_steps,features)的3D張量

3.2、AveragePooling1D層,平均值池化

keras.layers.pooling.AveragePooling1D(pool_size=2, strides=None, padding='valid')

對時域1D信號進行平均值池化

參數

  • pool_size:整數,池化窗口大小
  • strides:整數或None,下采樣因子,例如設2將會使得輸出shape為輸入的一半,若為None則默認值為pool_size。
  • padding:‘valid’或者‘same’

輸入shape:形如(samples,steps,features)的3D張量
輸出shape:形如(samples,downsampled_steps,features)的3D張量

4、循環層Recurrent

2.4.3、LSTM層

keras.layers.recurrent.LSTM(output_dim, init='glorot_uniform', inner_init='orthogonal', forget_bias_init='one', activation='tanh', inner_activation='hard_sigmoid', W_regularizer=None, U_regularizer=None, b_regularizer=None, dropout_W=0.0, dropout_U=0.0)
  • forget_bias_init:遺忘門偏置的初始化函數,Jozefowicz et al.建議初始化為全1元素
  • inner_activation:內部單元激活函數

總結

以上是生活随笔為你收集整理的Keras.layers各种层介绍,网络层、卷积层、池化层 等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。