Inference with TimeDistributed(Dense(1, activation="sigmoid")) in Keras 3 is a lot slower than in Keras 2 (tf.keras) Profiling shows TimeDistributed is the bottleneck.
Model: Conv1D → LSTM → Conv1DTranspose → TimeDistributed(Dense(1)).
input shape (none,none,1)
Tried: run_eagerly=False, tf.function, TensorFlow/JAX/PyTorch backends—no significant improvement.
Question
Is there a solution to fix the TimeDistributed slowdown in Keras 3 without changing the model architecture? Currently using tf_keras as a workaround.
Details
Keras Version: 3.9.0
Comment From: sonali-kumari1
Hi @Moublrs - Thanks for reporting this issue. Could you please provide a minimal code snippet to reproduce this issue?
Comment From: Moublrs
Hello @sonali-kumari1 thanks for your response here is the architecture of the model :
input_layer = Input(shape=(None, 1), name="input_layer")
x = Conv1D(32, kernel_size=kernel_size, strides=strides, padding="same",name="conv1d" )(input_layer)
x = Activation("relu", name="relu")(x)
x = Bidirectional(LSTM(32, recurrent_activation="sigmoid", return_sequences=True),name="LSTM" )(x)
x = conv1d_transpose(x, filters=32, kernel_size=kernel_size, strides=strides, padding="same")
output_layer = TimeDistributed(Dense(1, activation="sigmoid"), name="output_layer)(x)
model = Model(inputs=[input_layer], outputs=[output_layer])
the conv1d_transpose function has been taken for stackoverflow, i tested other implementations same problem, i dont think that the issue comes from ths function Thank you
Comment From: sonali-kumari1
Hi @Moublrs -
I tested the model using both keras 3 and tf.keras
but I observed that keras 3 is performing slightly better than tf.keras. Computational time for keras3 is ~5.38s and tf.keras
is ~6.52s for 10 inference runs. I am attaching both the gist files here:
If you are seeing different results on your end, please provide details such as the version of keras 2 you are using, or any specific hardware configurations. Thanks!
Comment From: github-actions[bot]
This issue is stale because it has been open for 14 days with no activity. It will be closed if no further activity occurs. Thank you.
Comment From: github-actions[bot]
This issue was closed because it has been inactive for 28 days. Please reopen if you'd like to work on this further.
Comment From: google-ml-butler[bot]