model.add(Conv1D(32,2, input_shape=(X_train.shape[1], X_train.shape[2]), activation = 'relu',padding='same')) model.add(MaxPooling1D()) model.add(LSTM(units=hu, activation = 'relu', return_sequences=False))这段代码中,为什么经过Lstm层以后输出的shape变成了(None,64)
时间: 2024-04-02 08:36:14 浏览: 103
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
在这段代码中,经过 LSTM 层以后输出的 shape 变成了 (None, 64) 是因为在上一层 MaxPooling1D 中进行了池化操作,将每个特征序列的长度缩短为原来的一半。假设上一层的输出形状为 (None, 128),经过池化后输出形状为 (None, 64)。然后,这个形状为 (None, 64) 的特征序列被输入到 LSTM 层中进行处理。在 LSTM 层中,units 参数指定了 LSTM 单元的数量,activation 参数指定了激活函数的类型,return_sequences 参数为 False 表示只返回最后一个时间步的输出,因此经过 LSTM 层以后输出的 shape 变成了 (None, units),即 (None, hu)。
阅读全文