亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有Maxpooling1D和channel_first的Keras模型

具有Maxpooling1D和channel_first的Keras模型

鴻蒙傳說 2021-05-30 14:48:22
我目前嘗試為Keras中的時間序列分類建立順序模型時遇到問題。我想使用channels_first數據,因為從perprocessing的角度來看它更方便(不過,我只使用一個通道)。Convolution1D正如我可以指定的那樣data_sample='channels_first',這對于我正在使用的圖層來說效果很好,但是某種程度上Maxpooling1D,這對它是行不通的,它似乎沒有此選項。我要構建的模型結構如下:model = Sequential()model.add(Convolution1D(filters=16, kernel_size=35, activation='relu', input_shape=(1, window_length), data_format='channels_first'))model.add(MaxPooling1D(pool_size=5)model.add(Convolution1D(filters=16, kernel_size=10, activation='relu', data_format='channels_first'))[...] #several other layers here在window_length = 5000添加了所有三個層之后,我得到以下摘要:_________________________________________________________________Layer (type)                 Output Shape              Param #  =================================================================conv1d_1 (Conv1D)           (None, 32, 4966)          1152     _________________________________________________________________max_pooling1d_1 (MaxPooling1 (None, 4, 4966)           0        _________________________________________________________________conv1d_2 (Conv1D)           (None, 16, 4957)          656      =================================================================Total params: 1,808Trainable params: 1,808Non-trainable params: 0現在,我想知道這是否正確,因為我希望池化層減少第三維(即特征圖中的神經元數量)而不是第二維(即過濾器的數量)?正如我所見,MaxPooling1D它無法識別channels_first排序,雖然Keras 文檔說存在一個關鍵字data_formatfor MaxPooling2D,但沒有這樣的關鍵字 for MaxPooling1D。我用一種channels_last數據格式測試了整個設置,它按我的預期工作。但是由于從channels_first到的轉換channels_last對我來說需要相當長的時間,所以我真的寧愿將這項工作與channels_first. 而且我有一種感覺,我只是想念一些東西。如果您需要更多信息,請告訴我。
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

一種替代方法是使用該Permute層(并刪除channels_first第二個 conv 層的 ):


model = Sequential()

model.add(Convolution1D(filters=16, kernel_size=35, activation='relu', input_shape=(1, 100), data_format='channels_first'))

model.add(Permute((2, 1)))

model.add(MaxPooling1D(pool_size=5))

model.add(Convolution1D(filters=16, kernel_size=10, activation='relu'))


model.summary()

型號概要:


Layer (type)                 Output Shape              Param #   

=================================================================

conv1d_7 (Conv1D)            (None, 16, 66)            576       

_________________________________________________________________

permute_1 (Permute)          (None, 66, 16)            0         

_________________________________________________________________

max_pooling1d_2 (MaxPooling1 (None, 13, 16)            0         

_________________________________________________________________

conv1d_8 (Conv1D)            (None, 4, 16)              2096      

=================================================================

Total params: 2,672

Trainable params: 2,672

Non-trainable params: 0

_________________________________________________________________


查看完整回答
反對 回復 2021-06-01
  • 1 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號