训练LSTM网络的时候遇到这个警告,大致就是无法在cuDNN的加速下使用,看的出训练的速度很慢。

下面是我的网络结构,很简单,就用了一层LSTM,定义了激活函数是relu。

找了一下官网文档对 LSTM 的API如何加速的描述(https://keras.io/api/layers/recurrent_layers/lstm,如下:

重点就在这几个定义好的参数,如果自己构建的网络定义的参数,就无法使用cuDNN的加速了。

所以问题的源头就在我的激活函数这一行, activation='relu'。

当我把它改成, activation='tanh' ,或者删掉也会默认用tanh。则不会警告。

至于LSTM要不要用 relu 激活(因为我之前看书的时候说很多时候relu的效果是比tanh好的),也有些大佬给了讨论,可以参考  https://www.zhihu.com/question/61265076

顺便提一下,当用cuDNN加速后训练速度起码是不用的十倍以上,效果还是很好的。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐