首页 > 解决方案 > TensorFlow 双向 CudnnGRU 模糊最终状态格式

问题描述

返回的状态的文档。RNN 状态是一个元组,在像 GRU 这样的非 LSTM 情况下,它有一个元素——一个形状张量(在这种情况下是 2,对于双向 GRU)。但是,文档没有指定外形的顺序。tf.contrib.cudnn_rnn.CudnnGRUcallrnn_output, rnn_state[num_layers * num_dirs, batch_size, num_units]num_dirs

简而言之,给定一个 n 层双向 GRU,这个张量是[final_state_fw_1, ..., final_state_fw_n, final_state_bw_1, ..., final_state_bw_n] OR [final_state_fw_1, final_state_bw_1, ..., final_state_fw_n, final_state_bw_n]吗?

标签: pythontensorflow

解决方案


格式如下:

[final_state_fw_1, final_state_bw_1, ..., final_state_fw_n, final_state_bw_n]

我通过编写测试两个操作并比较结果的代码来验证这一点。以我声称正确的方式解包会产生约 10^-15 阶的浮点错误,反之则产生重大错误。

请参阅此要点以重现和验证(需要具有支持 CUDA 的 GPU 的设备)。


推荐阅读