Tcn-lstm深度学习网络编程

我想问一下如果我想把tcn和lstm网络串联,是不是把cnn-lstm程序里padding改成causal就可以了

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/748529
  • 这篇博客也不错, 你可以看下Time-LSTM:使用RNN来处理用户行为时间间隔不均等的问题
  • 除此之外, 这篇博客: LSTM 已死,事实真是这样吗?中的 LSTM vs TCN 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在注意力机制和Transformers出现之前,还有另一种有望改变世界的新模式。这些就是时间卷积网络(TCN)。

    TCN 使用扩张卷积,它在不同长度的输入序列上进行padding - 使它们能够检测不仅彼此接近而且在完全不同位置的数据之间的依赖关系。

    TCN 于 2016 年 [12] 首次引入并于 2018 年 [13] 正式化,它利用卷积网络对基于序列的数据进行建模。它们也是时间序列预测任务的理想人选。

    图 6:过滤器大小 k = 3 和扩张因子 d = 1、2、4 的扩张卷积。感受野可以覆盖输入序列中的所有数据点 x_0 … x_T。

    TCN 的“秘籍”是扩张卷积,如图 6 所示。标准 CNN 使用固定大小的内核/过滤器,因此它们只能覆盖紧邻的数据元素。而TCN 使用扩张卷积,对不同长度的输入序列进行padding - 使它们能够检测不仅彼此接近而且位于完全不同位置的项目之间的依赖关系。

    除此之外,还使用残差连接等标准的深层CNN所使用的方法。这里我们也不会深入研究细节,只将关注 LSTM 的差异:

    • 速度:一般来说,TCN 比 LSTM 快,因为它们使用卷积,可以并行完成。在实践中,通过使用大量扩张和残差连接,TCN 最终可能会变慢。
    • 输入长度:TCN 和 LSTM 都能够接受可变长度输入。
    • 内存占用:平均而言,TCN 比 LSTM 需要更多内存,因为每个序列都由多个膨胀层处理。这取决于定义每个模型变得多么复杂的超参数。
    • 性能:最初的论文表明 TCN 优于 LSTM。但是在实践中,情况并非总是如此。[13] 中的一项更详尽的研究表明,在某些任务中,TCN 更好而在其他任务中LSTM 更有效。

    两种模式都有其优点和缺点。没有最终的胜利者,选择来说最好的方法是评估它们以及最适合的情况。

    但是这种方法现在好像已经过时了,虽然在图像识别中还在大量使用扩张卷积,那是因为图像的表示方式的特点,与时序的表格数据有很大的不同。另外就是通过应用单个 TCN 或 LSTM 模型来实现最先进的性能这种方式应该已经不存在了,现在的案例都会考虑更多外部参数,这就意味着必须使用多个组件/模型进行组合。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^