Keras中Conv1D的使用及說(shuō)明
Conv1D
keras.layers.Conv1D(filters, kernel_size, strides=1, padding='valid', data_format='channels_last', 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)
1D 卷積層 (例如時(shí)序卷積)。
該層創(chuàng)建了一個(gè)卷積核,該卷積核以 單個(gè)空間(或時(shí)間)維上的層輸入進(jìn)行卷積, 以生成輸出張量。 如果 use_bias 為 True, 則會(huì)創(chuàng)建一個(gè)偏置向量并將其添加到輸出中。 最后,如果 activation 不是 None,它也會(huì)應(yīng)用于輸出。
當(dāng)使用該層作為模型第一層時(shí),需要提供 input_shape 參數(shù)(整數(shù)元組或 None),例如, (10, 128) 表示 10 個(gè) 128 維的向量組成的向量序列, (None, 128) 表示 128 維的向量組成的變長(zhǎng)序列。
參數(shù)
filters: 整數(shù),輸出空間的維度 (即卷積中濾波器的輸出數(shù)量)。kernel_size: 一個(gè)整數(shù),或者單個(gè)整數(shù)表示的元組或列表, 指明 1D 卷積窗口的長(zhǎng)度。strides: 一個(gè)整數(shù),或者單個(gè)整數(shù)表示的元組或列表, 指明卷積的步長(zhǎng)。 指定任何 stride 值 != 1 與指定 dilation_rate 值 != 1 兩者不兼容。padding: “valid”, “causal” 或 “same” 之一 (大小寫(xiě)敏感) “valid” 表示「不填充」。 “same” 表示填充輸入以使輸出具有與原始輸入相同的長(zhǎng)度。 “causal” 表示因果(膨脹)卷積, 例如,output[t] 不依賴(lài)于 input[t+1:], 在模型不應(yīng)違反時(shí)間順序的時(shí)間數(shù)據(jù)建模時(shí)非常有用。data_format: 字符串, “channels_last” (默認(rèn)) 或 “channels_first” 之一。輸入的各個(gè)維度順序。 “channels_last” 對(duì)應(yīng)輸入尺寸為 (batch, steps, channels) (Keras 中時(shí)序數(shù)據(jù)的默認(rèn)格式) 而 “channels_first” 對(duì)應(yīng)輸入尺寸為 (batch, channels, steps)。dilation_rate: 一個(gè)整數(shù),或者單個(gè)整數(shù)表示的元組或列表,指定用于膨脹卷積的膨脹率。 當(dāng)前,指定任何 dilation_rate 值 != 1 與指定 stride 值 != 1 兩者不兼容。activation: 要使用的激活函數(shù)。 如未指定,則不使用激活函數(shù) (即線性激活: a(x) = x)。use_bias: 布爾值,該層是否使用偏置向量。kernel_initializer: kernel 權(quán)值矩陣的初始化器 。bias_initializer: 偏置向量的初始化器 。kernel_regularizer: 運(yùn)用到 kernel 權(quán)值矩陣的正則化函數(shù)。bias_regularizer: 運(yùn)用到偏置向量的正則化函數(shù)。activity_regularizer: 運(yùn)用到層輸出(它的激活值)的正則化函數(shù) 。kernel_constraint: 運(yùn)用到 kernel 權(quán)值矩陣的約束函數(shù)。bias_constraint: 運(yùn)用到偏置向量的約束函數(shù)。
輸入尺寸
3D 張量 ,尺寸為 (batch_size, steps, input_dim)
輸出尺寸
3D 張量,尺寸為 (batch_size, new_steps, filters)。 由于填充或窗口按步長(zhǎng)滑動(dòng),steps 值可能已更改
輸入輸出尺寸的理解
一般在2D卷積中,輸入尺寸很直觀,為 (samples, rows, cols, channels),即為樣本數(shù),行數(shù)、列數(shù)和通道數(shù)四維信息,但是若以此推斷,在Conv1D總兩維信息就足夠,中間卻夾雜了一個(gè)steps,那這個(gè)steps如何去理解呢?
理解steps參數(shù),我們應(yīng)該跳出圖像的思維,1D卷積通常施用在時(shí)序數(shù)據(jù)中,在時(shí)序數(shù)據(jù)的輸入中:
batch_size: 輸入的樣本數(shù)steps: 時(shí)間維度,個(gè)人認(rèn)為可以理解成量化后的時(shí)間長(zhǎng)度,也就是多少個(gè)時(shí)刻input_dim: 每個(gè)時(shí)刻的特征數(shù)量
keras Conv1D 一維卷積的輸入維度
報(bào)錯(cuò)情況
expected conv1d_1_input to have 3 dimensions, but got array with shape (1, 56)
問(wèn)題原因
維數(shù)不匹配
解決方法
數(shù)組的維數(shù)是(1,56),但神經(jīng)網(wǎng)絡(luò)維數(shù)與數(shù)組維數(shù)相反,應(yīng)該使用(56,1)或(None,1)
同時(shí)神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)應(yīng)改成三維,即reshape為(1,56,1)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中實(shí)現(xiàn)三目運(yùn)算的方法
這篇文章主要介紹了Python中實(shí)現(xiàn)三目運(yùn)算的方法,本文用and/or 運(yùn)算符模擬實(shí)現(xiàn)三目運(yùn)算,需要的朋友可以參考下2015-06-06
Python中的基本數(shù)據(jù)類(lèi)型介紹
這篇文章介紹了Python中的基本數(shù)據(jù)類(lèi)型,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
python計(jì)算數(shù)字或者數(shù)組的階乘的實(shí)現(xiàn)
本文主要介紹了python計(jì)算數(shù)字或者數(shù)組的階乘,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
利用python/R語(yǔ)言繪制圣誕樹(shù)實(shí)例代碼
圣誕節(jié)快到了,分別用R和Python繪制了圣誕樹(shù)祝你們圣誕節(jié)快樂(lè),所以下面這篇文章主要給大家介紹了關(guān)于如何利用python/R繪制圣誕樹(shù)的相關(guān)資料,需要的朋友可以參考下2021-12-12
Python類(lèi)和實(shí)例的屬性機(jī)制原理詳解
這篇文章主要介紹了Python類(lèi)和實(shí)例的屬性機(jī)制原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python從列表推導(dǎo)到zip()函數(shù)的5種技巧總結(jié)
在本篇文章里小編給大家整理的是關(guān)于Python從列表推導(dǎo)到zip()函數(shù)的5種技巧的相關(guān)知識(shí)點(diǎn)和代碼,需要的朋友們參考學(xué)習(xí)下。2019-10-10

