我想对包含以下内容的信号进行分类
X = (n_samples, n_timesteps, n_features)
,其中n_samples=476
,n_timesteps=400
,n_features=16
是信号的样本数量,时间步长和特征(或通道)。
y = (n_samples, n_timesteps, 1)
。每个时间步标记为0或1(二进制分类)。
我的图形模型如下图所示。
输入被馈入32个单元的LSTM。 LSTM输出进入一个1单位的密集层,以生成400x1向量,其中400是时间步长。然后,我想将此400x1向量放入400个单位的Dense层中。我试图展平1单位的Dense,但是最终输出的形状与标签400x1向量不匹配。
代码段和模型如下所示。
input_layer = Input(shape=(n_timestep, n_feature))
lstm1 = LSTM(32, return_sequences=True)(input_layer)
dense1 = Dense(1, activation='sigmoid')(lstm1)
flat1 = TimeDistributed(Flatten())(dense1)
dense2 = TimeDistributed(Dense(400, activation='sigmoid'))(flat1)
model = Model(inputs=input_layer, outputs=dense2)
model.summary()
以下显示错误。
ValueError: Error when checking target: expected time_distributed_4 to have shape (400, 400) but got array with shape (400, 1)
请让我知道如何解决它。谢谢。