GRU (return_sequences=True) 层之后的 TimeDistributed Dense Layer 导致维度错误

约翰迪兹尔

我目前正在尝试使用基于 Tensorflow 的 Keras 对时间序列数据进行分类,从而迈出第一步。我能够运行一个非常简单的模型,但是在一些反馈之后,建议我连续使用多个 GRU 层在我的密集层周围添加TimeDistributed 包装器这是我正在尝试的模型:

model = Sequential()
model.add(GRU(100, input_shape=(n_timesteps, n_features), return_sequences=True, dropout=0.5))
model.add(GRU(100, return_sequences=True, go_backwards=True, dropout=0.5))
model.add(GRU(100, return_sequences=True, go_backwards=True, dropout=0.5))
model.add(GRU(100, return_sequences=True, go_backwards=True, dropout=0.5))
model.add(GRU(100, return_sequences=True, go_backwards=True, dropout=0.5))
model.add(GRU(100, return_sequences=True, go_backwards=True, dropout=0.5))
model.add(TimeDistributed(Dense(units=100, activation='relu')))
model.add(TimeDistributed(Dense(n_outputs, activation='softmax')))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

尝试使用形状为 (2357, 128, 11) (2357 个样本,128 个时间步长,11 个特征)的输入拟合模型时,我收到以下错误消息

ValueError: Error when checking target: expected time_distributed_2 to have 3 dimensions, but got array with shape (2357, 5)

这是输出model.summary()

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
gru_1 (GRU)                  (None, 128, 100)          33600     
_________________________________________________________________
gru_2 (GRU)                  (None, 128, 100)          60300     
_________________________________________________________________
gru_3 (GRU)                  (None, 128, 100)          60300     
_________________________________________________________________
gru_4 (GRU)                  (None, 128, 100)          60300     
_________________________________________________________________
gru_5 (GRU)                  (None, 128, 100)          60300     
_________________________________________________________________
gru_6 (GRU)                  (None, 128, 100)          60300     
_________________________________________________________________
time_distributed_1 (TimeDist (None, 128, 100)          10100     
_________________________________________________________________
time_distributed_2 (TimeDist (None, 128, 5)            505       
=================================================================
Total params: 345,705
Trainable params: 345,705
Non-trainable params: 0

那么将多个 GRU 层连续放置并将 TimeDistributed Wrapper 添加到以下 Dense 层的正确方法是什么。我将非常感谢任何有用的输入

提姆布斯·卡林

如果您return_sequences = False在 GRU 的最后一层设置,代码将起作用。

您只需要将return_sequences = TrueRNN 的输出再次馈送到 RNN 的输入,从而保留时间维度空间。当您设置 时return_sequences = False,这意味着输出将仅是最后一个隐藏状态(而不是每个时间步的隐藏状态),并且时间维度将消失。

这就是为什么当您设置 时return_sequnces = False,输出维数从 N 减少到 N-1。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

GRU加载模型错误,ValueError:GRU(reset_after = False)与GRU(reset_after = True)不兼容

来自分类Dev

在 GRU 中使用嵌入层

来自分类Dev

在 Keras 中使用 TimeDistributed 和循环层

来自分类Dev

LSTM中的return_sequences

来自分类常见问题

在Keras中,TimeDistributed层的作用是什么?

来自分类Dev

如何在 CNN 块上应用 TimeDistributed 层?

来自分类Dev

Keras嵌入层导致维度问题

来自分类Dev

在Keras(深度学习库)中,RepeatVector + TimeDistributed =错误?

来自分类Dev

在TimeDistributed层内正确使用keras SpatialDropout2D-CNN LSTM网络

来自分类Dev

如何使用TimeDistributed层来预测动态长度序列?PYTHON 3

来自分类Dev

如何不在 Keras 中输出带有“TimeDistributed”层的序列?

来自分类Dev

为什么 Keras 序列到序列教程没有提到 TimeDistributed 层包装器?

来自分类Dev

pytorch LSTM中的`return_sequences = False`等价物

来自分类Dev

Python:如何在“ Return True”之后继续覆盖代码

来自分类Dev

怎么把TF Dense层转换成PyTorch?

来自分类Dev

怎么把TF Dense层转换成PyTorch?

来自分类Dev

如何更改 tensorflow.layers.dense() 层的输入?

来自分类Dev

keras Tensorflow 2中GRU和LSTM层中的num_units-混淆含义

来自分类Dev

使用Keras中的功能性API向GRU模型添加掩膜层的正确方法?

来自分类Dev

[@.disabled]="true" 导致控制台错误

来自分类Dev

当 return_state 和 return_sequences 为 false 时,lstm 返回什么

来自分类Dev

relu作为Dense()(或任何其他层)中的参数,而ReLu作为Keras中的层

来自分类Dev

为什么在构建网络进行分类时最后一层是 Dense 层?

来自分类Dev

在加载的模型中将 return_state=True 设置为 LSTM 层

来自分类Dev

重塑层的输出维度

来自分类Dev

如何使用PyTorch为堆叠的LSTM模型执行return_sequences?

来自分类Dev

如何在没有return_sequences的情况下在keras中堆叠多个lstm?

来自分类Dev

TimeDistributed(BatchNormalization)与BatchNormalization

来自分类Dev

false或true!= true或false!= true || 错误的

Related 相关文章

  1. 1

    GRU加载模型错误,ValueError:GRU(reset_after = False)与GRU(reset_after = True)不兼容

  2. 2

    在 GRU 中使用嵌入层

  3. 3

    在 Keras 中使用 TimeDistributed 和循环层

  4. 4

    LSTM中的return_sequences

  5. 5

    在Keras中,TimeDistributed层的作用是什么?

  6. 6

    如何在 CNN 块上应用 TimeDistributed 层?

  7. 7

    Keras嵌入层导致维度问题

  8. 8

    在Keras(深度学习库)中,RepeatVector + TimeDistributed =错误?

  9. 9

    在TimeDistributed层内正确使用keras SpatialDropout2D-CNN LSTM网络

  10. 10

    如何使用TimeDistributed层来预测动态长度序列?PYTHON 3

  11. 11

    如何不在 Keras 中输出带有“TimeDistributed”层的序列?

  12. 12

    为什么 Keras 序列到序列教程没有提到 TimeDistributed 层包装器?

  13. 13

    pytorch LSTM中的`return_sequences = False`等价物

  14. 14

    Python:如何在“ Return True”之后继续覆盖代码

  15. 15

    怎么把TF Dense层转换成PyTorch?

  16. 16

    怎么把TF Dense层转换成PyTorch?

  17. 17

    如何更改 tensorflow.layers.dense() 层的输入?

  18. 18

    keras Tensorflow 2中GRU和LSTM层中的num_units-混淆含义

  19. 19

    使用Keras中的功能性API向GRU模型添加掩膜层的正确方法?

  20. 20

    [@.disabled]="true" 导致控制台错误

  21. 21

    当 return_state 和 return_sequences 为 false 时,lstm 返回什么

  22. 22

    relu作为Dense()(或任何其他层)中的参数,而ReLu作为Keras中的层

  23. 23

    为什么在构建网络进行分类时最后一层是 Dense 层?

  24. 24

    在加载的模型中将 return_state=True 设置为 LSTM 层

  25. 25

    重塑层的输出维度

  26. 26

    如何使用PyTorch为堆叠的LSTM模型执行return_sequences?

  27. 27

    如何在没有return_sequences的情况下在keras中堆叠多个lstm?

  28. 28

    TimeDistributed(BatchNormalization)与BatchNormalization

  29. 29

    false或true!= true或false!= true || 错误的

热门标签

归档