tf.contrib.cudnn_rnn.CudnnGRU
的{{3}}指出call
返回rnn_output, rnn_state
。 RNN状态是一个元组,在非LSTM情况(例如GRU)中,它具有单个元素-形状为[num_layers * num_dirs, batch_size, num_units]
的张量(对于双向GRU,这里的num_dirs
为2)。但是,文档没有指定外形的顺序。
简而言之,给定一个n层双向GRU,该张量[final_state_fw_1, ..., final_state_fw_n, final_state_bw_1, ..., final_state_bw_n]
要么
[final_state_fw_1, final_state_bw_1, ..., final_state_fw_n, final_state_bw_n]
吗?
答案 0 :(得分:0)
格式如下:
[final_state_fw_1, final_state_bw_1, ..., final_state_fw_n, final_state_bw_n]
我通过编写测试两个操作并比较结果的代码来验证了这一点。拆解我认为正确的方法会产生〜10 ^ -15阶的浮点错误,反之则产生明显的错误。
请参见this gist进行复制和验证(需要具有支持CUDA的GPU的设备)。