gpt4 book ai didi

python - keras 中的 1d CNN 音频

转载 作者:太空狗 更新时间:2023-10-29 23:57:00 25 4
gpt4 key购买 nike

我想尝试实现附图的神经网络架构:1DCNN_model

假设我有一个数据集 X,它是 (N_signals, 1500, 40),其中 40 是我要对其进行一维卷积的特征数。我的 Y 是 (N_signals, 1500, 2) 并且我正在使用 keras。每个 1d 卷积都需要一个特征向量,如下图所示:1DCNN_convolution

因此它必须从 1500 个时间样本中取出一个 block ,将其传递给一维卷积层(沿时间轴滑动),然后将所有输出特征提供给 LSTM 层。

我试图用这段代码实现第一个卷积部分,但我不确定它在做什么,我不明白它是如何一次接受一个 block 的(也许我之前需要预处理我的输入数据? ):

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)

我实际上在想,也许我必须置换我的轴,以使 maxpooling 层在我的 40 mel 特征轴上工作......

关于python - keras 中的 1d CNN 音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48608501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com