python – 在keras的1d CNN音频
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在keras的1d CNN音频,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1842字,纯文字阅读大概需要3分钟。
内容图文
![python – 在keras的1d CNN音频](/upload/InfoBanner/zyjiaocheng/797/9396c5e8385d40069f10312a12974a35.jpg)
我想尝试实现附加图像的神经网络架构:1DCNN_model
考虑到我有一个数据集X,它是(N_signals,1500,40),其中40是我想要进行1d卷积的特征数.
我的Y是(N_signals,1500,2),我和keras一起工作.
每个1d卷积需要采用一个特征向量,如图所示:1DCNN_convolution
因此,它必须占用1500次样本中的一个,通过1d卷积层(沿时间轴滑动),然后将所有输出特征提供给LSTM层.
我尝试使用这段代码实现第一个卷积部分,但我不确定它在做什么,我无法理解它一次只能占用一个块(也许我需要预先处理我的输入数据?):
input_shape = (None, 40)
model_input = Input(input_shape, name = 'input')
layer = model_input
convs = []
for i in range(n_chunks):
conv = Conv1D(filters = 40,
kernel_size = 10,
padding = 'valid',
activation = 'relu')(layer)
conv = BatchNormalization(axis = 2)(conv)
pool = MaxPooling1D(40)(conv)
pool = Dropout(0.3)(pool)
convs.append(pool)
out = Merge(mode = 'concat')(convs)
conv_model = Model(input = layer, output = out)
有什么建议?非常感谢你
解决方法:
非常感谢,我用这种方式修改了我的代码:
input_shape = (1500,40)
model_input = Input(shape=input_shape, name='input')
layer = model_input
layer = Conv1D(filters=40,
kernel_size=10,
padding='valid',
activation='relu')(layer)
layer = BatchNormalization(axis=2)(layer)
layer = MaxPooling1D(pool_size=40,
padding='same')(layer)
layer = Dropout(self.params.drop_rate)(layer)
layer = LSTM(40, return_sequences=True,
activation=self.params.lstm_activation)(layer)
layer = Dropout(self.params.lstm_dropout)(layer)
layer = Dense(40, activation = 'relu')(layer)
layer = BatchNormalization(axis = 2)(layer)
model_output = TimeDistributed(Dense(2,
activation='sigmoid'))(layer)
我实际上在想,也许我必须对我的轴进行置换才能使我的40 mel特征轴上的maxpooling层工作…
内容总结
以上是互联网集市为您收集整理的python – 在keras的1d CNN音频全部内容,希望文章能够帮你解决python – 在keras的1d CNN音频所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。