请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

最后一层LSTM为什么不用设置return_sequences=True

如果我要给一句话做标注的话,是不是需要将最后一层的return_sequences设置为True,还有

model.add(tf.keras.layers.LSTM(
        512, # 输出的维度
        input_shape=(inputs.shape[1], inputs.shape[2]), # 输入的形状
        return_sequences=True # 返回 Sequences(序列)
    ))

这样的一层,每个time_step输出的是一个512维的tensor吗?然后当return_sequences=True时,就会把sequence_length个512维的tensors作为输出吗?

正在回答

1回答

Oscar 2018-02-04 04:55:48
model.add(tf.keras.layers.LSTM(    
512,  # LSTM 层神经元的数目是 512,也是 LSTM 层输出的维度    
input_shape=(inputs.shape[1], inputs.shape[2]), # 输入的形状,对第一个 LSTM 层必须设置    
# return_sequences:控制返回类型    
# - True:返回所有的输出序列    
# - False:返回输出序列的最后一个输出    
# 在堆叠 LSTM 层时必须设置,最后一层 LSTM 可以不用设置    
return_sequences=True # 返回所有的输出序列(Sequences)    
))


最后一层不用设置 return_sequences,就会是默认的 False,表示 只返回序列的最后一个。

model.add(tf.keras.layers.LSTM(512))  # return_sequences 是默认的 False,只返回输出序列的最后一个


0 回复 有任何疑惑可以回复我~
  • 老师,为什么最后一层只返回序列最后一个就行了
    回复 有任何疑惑可以回复我~ 2018-03-04 16:58:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信