keras框架中repeatvector layer和Timedistributed layer的通俗理解!!

2023 10.24补充:Timedistributed layer作用最后一维

前言:

看一篇论文,里面作者用keras框架做的模型,其中repeatvector layer和Timedistributed layer 不是太理解有什么意义,于是乎对其展开研究,以下是我的研究结果,很高兴分享给大家。若有错误,请在评论区指出,我会即使与你讨论相关问题。

结论:

repeatvector layer:扩张时间步的感受野,最终目的:使模型能处理一对多,多对一的问题。

Timedistributed layer:降低特征维度,最终目的:使得模型输出的特征维度与输入一致。

正文:

如上图所示,给出一个(50,1,10)的数据。50个样本做一个batch,喂给模型。time_step指的是时间步的感受野,通俗一点,(50,1,10),中间是1就代表着lookback=1,(50,3,10)3就代表着lookback=3,就用过去的1步或3步数据用作训练,如下图,就是 [batch_size, time_step, input_size]=[30,5,7]的情况。

Tip:下面这张图引用的是‘Dianchen_Raw’博主的‘DeepLearning之LSTM模型输入参数:time_step, input_size, batch_size的理解’文章。

好,你们现在应该都比较清晰各参数的意思了,那接着我的图说,我将(50,1,10)的一堆数据丢到LSTM_1层里(这个层的神经元为150),意味着(1,10)的数据经过LSTM_1后会有150个值输出,即output(50,1,150),然后经过repeatvector(5),这层干啥的呢,实际上这层起到的作用是拓宽时间步的感受野即输出为(50,5,150),有的同学又忘了中间那个5什么意思,意思就是(1,150)的数据被他重复复制滑动窗口了五次,此时数据就变成了5个样本,每个样本150个特征的输入,即(5,150)。

好,然后经过LSTM_2层,不再赘述,还是(50,5,150),然后经过TIme distribute(10),

TIme distribute(10)干嘛的呢,就降低特征维度,本来每个样本有150个特征,那么经过这一layer,变成(50,5,10)。那我们再总的来看一下数据结构,是不是从(50,1,10)变成最后的(50,5,10)了?

对于我举的例子,这两个层的意义也就在此,用过去一步预测未来5步。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值