Open nhuet opened 11 months ago
Thank you for this detailed issue! I have added this to out internal hotlist. I hope we can get to it soon!
More context: we recently pinned to Keras 2 before fully migrating our codebase to Keras 3: https://github.com/tensorflow/tensorboard/pull/6684
Apologies for the inconvenience!
Ok, i understand, thanks for the explanation.
Hi, is there any progress on this issue? Since 2.16, tensorflow and tensorboard are supposed to be keras 3 fully compatible since this is now the default keras installed. It seems that functional keras models cannot still be displayed in graph plugin. (Same error, inbound_nodes list is made of dicts instead of a lists, thus missing the key 0.
Hi @nhuet,
Apologies since we haven't got any bandwidth to work on this issue, will post an update here as soon as there's any update.
Hi @nhuet,
Keras 3 compatibility issue for graph plugin should be fixed at #6823 and https://github.com/tensorflow/tensorboard/pull/6826. This change will be available in tb-nightly in the next one or two days, please try again and let us know if this resolves your issue. Thanks for your patience!
Hi @yatbear!
Thanks for these two commits. But I found another issue.
Look this notebook, it seems that graph plugin fails when you want to visualize the conceptual graph. In particular for ResNet-152 an error is risen here.
If you look the output of model.to_json()
you can notice the following JSON list:
[
{
"class_name": "__ellipsis__",
"config": {}
},
2
]
In this case, arg
is 2 and is an int
. So the method .get("config", {})
doesn't exist. The int
type is compatible with serialization like shown here. Only KerasTensor
has _keras_history
.
When using keras-nightly which is now a preview of the keras 3.0 to come, tensorboard fails to represent the conceptual graph of a functional keras model.
I know that tensorboard is intended to work with the keras of same version, so i put this as a feature request instead of a bug. I tried also with tensorboard-nightly with the same result: sequential models are well represented but not functional models, probably because of a change in json representation. The error comes from "inbound_nodes" which can now be a list of dictionaries/lists instead of a list of lists.
Here is a minimal example showing the bug:
which results in
Here is an extract of the json reprenstation showing that inbound_nodes members are not always lists:
You have to run it in an environment with tensorboard (potentially tb-nightly) and keras-nightly. For instance with: