训练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加速后训练速度起码是不用的十倍以上,效果还是很好的。