中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keras.layers.Conv2D()函數參數怎么使用

發布時間:2023-02-22 17:56:07 來源:億速云 閱讀:147 作者:iii 欄目:開發技術

今天小編給大家分享一下keras.layers.Conv2D()函數參數怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    tf.keras.layers.Conv2D() 函數

    Conv2D (二維卷積層)

    這一層創建了一個卷積核,它與這一層的輸入卷積以產生一個輸出張量

    當使用此層作為模型的第一層時,提供關鍵字參數 input_shape (整數元組,不包括樣本軸,不需要寫batch_size)

    def __init__(self, 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):

    參數

    • filters

    int 類型,表示卷積核個數,filters 影響的是最后輸入結果的的第四個維度的變化

    import tensorflow as tf
    from tensorflow.keras.layers import Conv2D
    
    input_shape = (4, 600, 600, 3)
    input = tf.random.normal(input_shape)
    x = keras.layers.Conv2D(64, (1, 1), strides=(1, 1), name='conv1')(input)
    print(x.shape)
    
    OUTPUT:
    (4, 600, 600, 64)
    • kernel_size

    表示卷積核的大小,如果是方陣可以直接寫成一個數,影響的是輸出結果中間兩個數據的維度

    x = Conv2D(64, (2, 2), strides=(1, 1), name='conv1')(input)
    #or Conv2D(64, 2, strides=(1, 1), name='conv1')(input)
    print(x.shape)
    
    OUTPUT:
    (4, 599, 599, 64)
    • strides

    tuple (int, int) 步長,同樣會影響輸出的中間兩個維度,值得注意的是,括號里的數據可以不一致,分別控制橫坐標和縱坐標

    x = Conv2D(64, 1, strides=(2, 2), name='conv1')(input)
    print(x.shape)
    
    OUTPUT:
    (4, 300, 300, 64)
    • padding

    是否對周圍進行填充,same 即使通過 kernel_size 縮小了維度,但是四周會填充 0,保持原先的維度;valid 表示存儲不為 0 的有效信息

    a = Conv2D(64, 1, strides=(2, 2), padding="same" , name='conv1')(input)
    b = Conv2D(64, 3, strides=(2, 2), padding="same" , name='conv1')(input)
    c = Conv2D(64, 3, strides=(1, 1), padding="same" , name='conv1')(input)
    d = Conv2D(64, 3, strides=(1, 1), padding="valid", name='conv1')(input)
    print(a.shape, b.shape, c.shape, d.shape)
    
    OUTPUT:
    (4, 300, 300, 64)
    (4, 300, 300, 64)
    (4, 600, 600, 64)
    (4, 598, 598, 64)
    • activation

    激活函數,如果 activation 不是 None,則它會應用于輸出

    • use_bias

    boolean,表示是否使用偏置量,如果 use_bias 為真,則創建一個偏置項并添加到輸出中

    • data_format

    用于規定 input_shape 的格式

    如果不填寫,默認是 channels_last,否則可以填寫 channels_first。前者的會把 input_shape 這個三元組給識別成 (batch_size, height, width, channels),后者則會識別成 (batch_size, channels, height, width) 不過樣本軸 (batch_size) 不需要自己填寫

    • dilation_rate

    int, tuple(int, int), list[int, int],指定用于擴展卷積的擴展率。可以是單個整數,為所有空間維度指定相同的值。該參數定義了卷積核處理數據時各值的間距。

    在相同的計算條件下,該參數提供了更大的感受野。該參數經常用在實時圖像分割中。當網絡層需要較大的感受野,但計算資源有限而無法提高卷積核數量或大小時,可以考慮使用。

    • 返回值

    返回一個四維的張量

    第一個數是 batch 的大小,也就是有幾組數據;后三個數表示一個張量的大小

    tf.keras.layers.conv2D學習

    參數描述
    inputs把上一層的輸出作為輸入(直接將上一層作為參數輸入即可)
    input_shape當作為模型的第一層時,需要指出輸入的形狀(samples,rows,cols,channels) ,只指出后三維即可,第一維度按batch_size自動指定
    filters卷積過濾器的數量,對應輸出的維數--卷積核的數目(即輸出的維度)
    kernel_size整數,過濾器的大小,如果為一個整數則寬和高相同.單個整數或由兩個整數構成的list/tuple,卷積核的寬度和長度。如為單個整數,則表示在各個空間維度的相同長度
    strides橫向和縱向的步長,如果為一個整數則橫向和縱向相同.單個整數或由兩個整數構成的list/tuple,為卷積的步長。如為單個整數,則表示在各個空間維度的相同步長。任何不為1的strides均與任何不為1的dilation_rata均不兼容
    padding補0策略,為“valid”, “same”。“valid”代表只進行有效的卷積,即對邊界數據不處理。“same”代表保留邊界處的卷積結果,通常會導致輸出shape與輸入shape相同。
    data_formatchannels_last為(batch,height,width,channels),channels_first為(batch,channels,height,width).以128x128的RGB圖像為例,“channels_first”應將數據組織為(3,128,128),而“channels_last”應將數據組織為(128,128,3)。該參數的默認值是~/.keras/keras.json中設置的值,若從未設置過,則為“channels_last”。
    dilation_rate 
    activation激活函數,如果不指定該參數,將不會使用任何激活函數(即使用線性激活函數:a(x)=x)
    use_bias是否使用偏差量,布爾值
    kernel_initializer卷積核的初始化。
    bias_initializer偏差向量的初始化。如果是None,則使用默認的初始值。
    kernel_regularizer卷積核的正則項
    bias_regularizer偏差向量的正則項
    activity_regularizer輸出的正則函數
    bias_constraint映射函數,當偏差向量被Optimizer更新后應用到偏差向量上。
    trainableBoolean類型。
    name字符串,層的名字。
    reuseBoolean類型,表示是否可以重復使用具有相同名字的前一層的權重。
    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)
    # 設置訓練模型  
    # input_shape 指出輸入的形狀(samples,rows,cols,channels) ,只指出后三維即可,第一維度按batch_size自動指定
        # x_train (60000,28,28,1)  >> input_shape=(60000,28,28,1)  第一維可以省略,自動根據batch_size指定
        tf.keras.layers.Conv2D(filters=16,kernel_size=(5,5),activation="relu",input_shape=(28,28,1),padding="valid"),

    以上就是“keras.layers.Conv2D()函數參數怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    会泽县| 青海省| 东阿县| 格尔木市| 原平市| 大竹县| 平度市| 建宁县| 南召县| 太谷县| 浏阳市| 镶黄旗| 新化县| 城固县| 柳林县| 莲花县| 清镇市| 彝良县| 肇州县| 即墨市| 黎平县| 聂荣县| 苍梧县| 石门县| 澄迈县| 大竹县| 涟源市| 临沭县| 凌源市| 贵德县| 卓尼县| 汉阴县| 耒阳市| 苏州市| 河津市| 米脂县| 徐州市| 广宁县| 涿州市| 永年县| 黄石市|