当前位置: 首页 > 知识库问答 >
问题:

了解整平在Keras中的作用,并确定何时使用[已关闭]

滑畅
2023-03-14

想改进这个问题吗 通过编辑这篇文章,更新问题,以便用事实和引文来回答。

我试图理解为时间序列预测开发的模型。它使用一个Con1D层和两个LSTM层,然后是一个致密层。我的问题是,它应该在LSTM和致密层之间使用展平吗?在我看来,输出应该只有一个值,其形状为(None,1),可以通过在LSTM和致密层之间使用展平()来实现。如果没有展平(),输出形状将是(None,30,1)。或者,我可以从第二个LSTM层中删除return\u sequences=True,我认为这与展平()的效果相同。哪种方法更合适?它们会影响损失吗?这是模型。

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv1D(filters=32, kernel_size=3, strides=1, padding="causal", activation="relu", input_shape=(30 ,1)),
    tf.keras.layers.LSTM(32, return_sequences=True),
    tf.keras.layers.LSTM(32, return_sequences=True),
    # tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(1),
    ])

这是没有扁平化的模型摘要

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv1d (Conv1D)              (None, 30, 32)            128       
_________________________________________________________________
lstm (LSTM)                  (None, 30, 32)            8320      
_________________________________________________________________
lstm_1 (LSTM)                (None, 30, 32)            8320      
_________________________________________________________________
dense (Dense)                (None, 30, 1)             33        
=================================================================
Total params: 16,801
Trainable params: 16,801
Non-trainable params: 0
_________________________________________________________________

共有2个答案

蒋永宁
2023-03-14

请参考此链接

展平()通常在输出层之前使用。最好在LSTM层的全部输出上使用展平。。。可在致密层后使用,而不是在LSTM层后使用。

我想通过这里的其他回答和评论从计数器中学习。

元修然
2023-03-14

嗯,这取决于你想要实现什么。我试着给你一些提示,因为我并不完全清楚你想要得到什么。

如果您的LSTM使用return\u sequences=True,那么您将返回每个LSTM单元的输出,即每个时间戳的输出。如果随后添加一个致密层,其中一个将添加到每个LSTM层的顶部。

如果将展平层与return\u sequences=True一起使用,那么基本上就是在删除时间维度,在您的情况下有类似于(None,30)的内容。然后,你可以添加一个致密层或任何你需要的水。

如果您设置了return_sequences=False,您只需在LSTM的末尾获得输出(请注意,在任何情况下,由于LSTM功能,它是基于之前时间戳发生的计算),并且输出将是(无,暗淡)的形状,其中dim等于您在LSTM中使用的隐藏单元的数量(即32个)。在这里,您可以再次简单地添加一个带有一个隐藏单元的密集层,以获得您想要的。

 类似资料:
  • 我正在试图理解Keras中扁平化功能的作用。下面是我的代码,这是一个简单的两层网络。它接收形状(3,2)的二维数据,输出形状(1,4)的一维数据: 这将打印出y具有形状(1,4)。但是,如果我删除展平线,则它会打印出y具有形状(1、3、4)。 我不明白这一点。根据我对神经网络的理解,这个模型。add(Dense(16,input\u shape=(3,2)))函数正在创建一个具有16个节点的隐藏完

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 去年关闭。 改善这个问题 我正在尝试使用keras来拟合CNN模型以对图像进行分类。数据集具有来自某些类别的更多图像,因此其不平衡。 我在Keras中阅读了有关如何权衡损失以解决这一问题的其他方法,例如:https : //datascience.stack

  • 了解如何在 Photoshop 中使用专用的“选择并遮住”工作区。 现在,在 Photoshop 中创建准确的选区和蒙版比以往任何时候都更快捷、更简单。一个新的专用工作区能够帮助您创建精准的选区和蒙版。使用“调整边缘画笔”等工具可清晰地分离前景和背景元素,并进行更多操作。 注意:“选择并遮住”工作区替代了 Photoshop 早期版本中的“调整边缘”对话框,前者可凭借精简的方式提供相同的功能。请参

  • 我尝试使用供应商流,但仍然得到方法CalculatePricePerItem的相同错误。你能帮我解决这个问题吗?

  • 使用“关键字”面板可以创建并对文件应用 Adobe Bridge 关键字。可以将关键字组织成由父关键字和子关键字(称为子关键字)。使用关键字,您可以根据文件内容识别文件。例如,您可以使用筛选器面板来查看某一文件夹中共享某些关键字的所有文件,也可以使用“查找”命令来查找包含指定关键字的文件。 有关详细信息,请参阅嵌入式层次结构关键字 | Adobe Bridge。 创建新关键字和子关键字 在关键字面

  • 问题内容: 使用Python反转一个整数,然后确定它是否是回文。这是我对逆转和回文的定义。我有正确的逻辑吗? 我写的时候有些麻烦。 问题答案: