You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TensorFlow Keras中指定GRU模型的隐藏循环层数?

GRU模型结构理解与添加隐藏层方法

首先纠正你的理解:你这段代码没有单独的“输入层”,Keras中input_shape是用来指定输入数据的维度(序列长度+特征数),第一个GRU(units=64)就是第一个循环隐藏层,第二个GRU(units=64)是第二个循环隐藏层,最后Dense(4)是输出层。所以整体结构是:

  • 2个GRU隐藏层(各64个神经元)
  • 对应两层Dropout(比例0.2)
  • 1个全连接输出层(4个神经元)

怎么添加更多循环隐藏层?

要添加额外的GRU隐藏层,注意除了最后一个GRU层之外,前面所有新增的GRU层都必须设置return_sequences=True——因为循环层之间需要传递完整的序列时序信息,只有最后一个GRU层后面接全连接层时,才不需要返回完整序列(默认return_sequences=False)。

比如添加第三个GRU层的代码示例:

def create_model(units, m):
    model = Sequential()
    # 第一个GRU层:返回完整序列,供下一层GRU使用
    model.add(m(units=units, return_sequences=True, input_shape=[X_train.shape[1], X_train.shape[2]]))
    model.add(Dropout(0.2))
    # 第二个GRU层:返回完整序列,供下一层GRU使用
    model.add(m(units=units, return_sequences=True))    
    model.add(Dropout(0.2))
    # 第三个GRU层:不返回完整序列,因为后面接全连接层
    model.add(m(units=units))    
    model.add(Dropout(0.2))    
    model.add(Dense(4))
    model.compile(loss='mse', optimizer=MyOptimizer(learning_rate=0.001))
    return model

model_gru = create_model(64, GRU)

如果需要更多层,按照这个逻辑重复添加model.add(m(units=units, return_sequences=True)) + Dropout即可,只保留最后一个GRU层不设置return_sequences(或设为False)。

内容的提问来源于stack exchange,提问作者DaliMidou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:31:04