I'm encountering an issue while trying to compile a Keras model in TensorFlow 2.15.0 using a custom optimizer and loss function, in google colab.
Here's the code snippet that works fine
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
However, when I attempt to configure the optimizer and loss separately as follows:
# Configure the optimizer, loss, and model
optimizer = tf.keras.optimizers.Adam(learning_rate=0.01)
loss = tf.keras.losses.CategoricalCrossentropy(from_logits=False)
print(optimizer)
print(loss)
model.compile(optimizer=optimizer, loss=loss, metrics=['accuracy'])
I encounter the following error:
ValueError: Could not interpret optimizer identifier: <keras.src.optimizers.adam.Adam object at 0x7f925c90ace0>
It seems like TensorFlow is having trouble interpreting the custom optimizer object. Here are the details:
TensorFlow version: 2.15.0
Custom optimizer: <keras.src.optimizers.adam.Adam object at 0x7f925c90ace0>
Custom loss function: <keras.src.losses.CategoricalCrossentropy object at 0x7f9301977c10>
This what resolved the issue.
Check Installed Packages
!pip list | grep keras
This returned unexpected "tf_keras"
keras 2.15.0
tf_keras 2.15.1
Uninstall "tf_keras"
!pip uninstall tf_keras
Restart Runtime (Ctrl+M)
Verify Installed Packages.
!pip list | grep keras
Should return only keras
keras 2.15.0