KERAS中GRU的默认隐藏状态是什么?

KERAS中GRU的默认隐藏状态是什么?,keras,Keras,我知道输入权重的初始值设定项是“glorot_uniform”,隐藏统计数据权重的初始值设定项是“正交”,偏差的初始值设定项是“零” 但是我不知道GRU的第一个隐藏状态的初始值是零。您可以在中找到以下行 def get_初始_状态(自身,输入): #构建形状的全零张量(样本、输出) 初始状态=K.zeros_like(输入)#(采样、时间步、输入尺寸) 初始_状态=K.sum(初始_状态,轴=(1,2))#(样本,) 初始_状态=K.expand_dims(初始_状态)#(示例,1) 如果has

我知道输入权重的初始值设定项是“glorot_uniform”,隐藏统计数据权重的初始值设定项是“正交”,偏差的初始值设定项是“零”


但是我不知道GRU的第一个隐藏状态的初始值是零。您可以在中找到以下行

def get_初始_状态(自身,输入):
#构建形状的全零张量(样本、输出)
初始状态=K.zeros_like(输入)#(采样、时间步、输入尺寸)
初始_状态=K.sum(初始_状态,轴=(1,2))#(样本,)
初始_状态=K.expand_dims(初始_状态)#(示例,1)
如果hasattr(self.cell.state_size,'.'u_len_'):
返回[K.tile(初始状态,[1,dim])
用于自身中的dim。单元格。状态\u大小]
其他:
返回[K.tile(初始状态[1,self.cell.state\u size])]
此函数用于在调用
GRU
层时获取第一个隐藏状态,而不指定初始状态,并且该层没有状态,即常见用法
GRU(…)(x)

def调用(self,
投入,
掩码=无,
培训=无,
初始状态=无,
常数=无):
#输入形状:`(样本、时间(用零填充)、输入尺寸)`
#注意,子类的.build()方法必须定义
#具有完整输入形状的self.input_spec和self.state_spec。
如果isinstance(输入,列表):
输入=输入[0]
如果初始_状态不是无:
通过
elif self.stateful:
初始状态=自我状态
其他:
初始状态=自身。获取初始状态(输入)
keras.layers.GRU(units, activation='tanh', recurrent_activation='hard_sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=1, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)