python 数据结构转换层_python – 具有Maxpooling1D和channel_first的Keras模型

我目前尝试在Keras中为时间序列分类构建顺序模型时遇到问题.我想使用channels_first数据,因为从处理的角度来看它更方便(不过我只使用一个通道).这适用于我正在使用的Convolution1D图层,因为我可以指定data_sample =’channels_first’,但不知何故这对Maxpooling1D不起作用,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,808

Trainable params: 1,808

Non-trainable params: 0

现在,我想知道这是否正确,因为我期望第三维(即特征图中的神经元数)而不是第二维(即过滤器的数量)被汇集层减少?正如我所看到的,MaxPooling1D无法识别channels_first排序,而Keras documentation表示MaxPooling2D存在关键字data_format,MaxPooling1D没有这样的关键字.

我使用channels_last数据格式测试了整个设置,它按预期工作.但是因为从channels_first转换为channels_last需要花费相当长的时间,所以我真的宁愿使用channels_first.我觉得我只是遗漏了一些东西.

如果您需要更多信息,请与我们联系.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值