I have a model that uses the keras LSTM layer with dropout not equal to zero. I am using TF backend.
I noticed a performance drop after updating to Keras 3 and after checking I found out that the requirements for using the fast CuDNN LSTM implementation.
With Keras 2.15, the requirements to use the cuDNN implementation are:
activation == tanh
recurrent_activation == sigmoid
recurrent_dropout == 0
unroll is False
use_bias is True
Inputs, if use masking, are strictly right-padded.
Eager execution is enabled in the outermost context.
With Keras 3, the requirements to use the cuDNN implementation are:
activation == tanh
recurrent_activation == sigmoid
dropout == 0 and recurrent_dropout == 0
unroll is False
use_bias is True
Inputs, if use masking, are strictly right-padded.
Eager execution is enabled in the outermost context.
This change has a significant impact on performance when using dropout. Can we expect a change or some alternative way to use dropout without performance degradation?
I have a model that uses the keras LSTM layer with dropout not equal to zero. I am using TF backend.
I noticed a performance drop after updating to Keras 3 and after checking I found out that the requirements for using the fast CuDNN LSTM implementation.
With Keras 2.15, the requirements to use the cuDNN implementation are:
With Keras 3, the requirements to use the cuDNN implementation are:
This change has a significant impact on performance when using dropout. Can we expect a change or some alternative way to use dropout without performance degradation?