首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"RepeatVector“和"TimeDistributed”的工作是什么?

"RepeatVector“和"TimeDistributed”的工作是什么?
EN

Data Science用户
提问于 2019-03-01 20:43:03
回答 2查看 22.7K关注 0票数 20

我在Keras文档和其他网站上读到了它们,但是我无法确切地理解它们到底是做什么的,我们应该如何使用它们来设计many-to-manyencoder-decoder LSTM网络?

我看到他们在这个问题在这里的解决方案中使用。

模型=序列() model.add(LSTM(input_dim=1,output_dim=hidden_neurons,return_sequences=False)) model.add(RepeatVector(10)) model.add(LSTM(output_dim=hidden_neurons,return_sequences=True)) model.add(TimeDistributed(致密(1)model.add(激活(‘线性’))model.compile(损失=‘均方_error’,优化器=‘rmsprop’,metrics=“准确性”)

EN

回答 2

Data Science用户

回答已采纳

发布于 2019-03-02 02:37:28

tf.keras.layers.RepeatVector

根据医生的说法:

重复输入n次。

它们还提供了一个例子:

代码语言:javascript
复制
model = Sequential()
model.add(Dense(32, input_dim=32))
# now: model.output_shape == (None, 32)
# note: `None` is the batch dimension
model.add(RepeatVector(3))
# now: model.output_shape == (None, 3, 32)

在上面的示例中,RepeatVector层重复输入的特定时间。上述示例中输入的形状是( 32 , )。但由于输入重复3次,RepeatVector的输出形状为( 3 , 32 )

tf.keras.layers.TimeDistributed()

根据医生的说法:

此包装器允许将一个层应用于输入的每个时间片。输入应至少是三维的,索引1的维数将被视为时间维。

你可以参考他们的网站上的例子。

TimeDistributed层将特定的层(如Dense )应用于它作为输入接收到的每个样本。假设输入大小为( 13,10,6 )。现在,我需要在每一片形状( 10,6 )上加一个致密的层。然后,我会将Dense层封装在TimeDistributed层中。

代码语言:javascript
复制
model.add( TimeDistributed( Dense( 12 , input_shape=( 10 , 6 ) )) )

该层的输出形状为( 13,10,12 )。因此,如上所述,Dense层的操作被应用于每个时态切片。

票数 10
EN

Data Science用户

发布于 2019-05-31 13:48:01

对于编码器-解码器,你的输入被压缩成一个单一的特征向量,如果你想要你的输出再生与原始输入相同的维度,你是“人为地”将这个特征张量从一维转换为二维,通过使用RepeatVector()复制它。

票数 9
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/46491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档