系统信息
- TensorFlow版本(您正在使用的):
2.4
- 您是否愿意为其做出贡献(是/否):
是
描述功能及其当前行为/状态。
文档中说,cuDNN出于某种原因需要tanh,尽管不清楚为什么存在这种限制:
https://www.tensorflow.org/api_docs/python/tf/keras/layers/GRU#used-in-the-notebooks_1
当使用cuDNN时,Tensorflow应该支持更多的激活函数,如Relu。在Nvidia的cuDNN方面,使用relu没有限制。
目前,我被迫使用tanh而不是relu,仅仅是因为事实证明,cuDNN与tanh的性能在训练速度方面比通用内核快了5个数量级。
总之,请删除验证和要求检查,以防止您无法使用relu。谢谢。
这将如何改变当前的API?如何?
它不应该影响API
谁将从这个特性中受益?
如果能够使用cuDNN而不是通用的Tensorflow内核,将带来巨大的性能优势,因此任何拥有NVIDIA GPU的人都会受益。
其他信息。
2条答案
按热度按时间htzpubme1#
cuDNN文档表示,它支持四种类型的RNN单元,其中ReLU激活单门RNN单元就是其中之一。然而,cuDNN并未包含ReLU激活(三门)GRU单元。
CUDNN_GRU
(和CUDNN_LSTM
)描述符与tanh激活相关联。您可以查看cudnnRNNMode以获取每种单元类型更详细的公式。ohtdti5x2#
@CPT-FALCO,
你有没有机会查看这个官方文档:https://docs.nvidia.com/deeplearning/cudnn/latest/api/cudnn-graph-library.html#cudnnRNNMode_t。
感谢你打开这个问题。由于这个问题已经开放了很长时间,这个问题的代码/调试信息可能与当前代码库的状态不相关。
Tensorflow团队正在不断通过修复错误和添加新功能来改进框架。我们建议你尝试使用最新的TensorFlow version,并使用最新的兼容硬件配置,这可能会解决这个问题。如果你仍然遇到问题,请创建一个新的GitHub问题,附上你的最新发现,以及所有有助于我们调查的调试信息。
请按照以下步骤保持对Tensorflow空间中最新发展的了解:
[release notes]