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

来源:5-7 编写整个神经网络模型

追梦逐梦白日做梦

2018-02-03

如果我要给一句话做标注的话,是不是需要将最后一层的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

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
1
榴莲痴汉
老师,为什么最后一层只返回序列最后一个就行了
2018-03-04
共1条回复

基于Python玩转人工智能最火框架 TensorFlow应用实践

机器学习入门,打牢TensorFlow框架应用是关键!

2214 学习 · 688 问题

查看课程