- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2.1k
migrate metric learning example to keras 3 #2206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Refactor loss function and tensor handling in metric learning for compatibility with Keras 3.
| Summary of ChangesHello @Shi-pra-19, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request updates the metric learning example to be fully compatible with Keras 3. The changes involve adapting import statements, configuring the  Highlights
 Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either  
 Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a  Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
 | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request migrates the metric learning example to be compatible with Keras 3. The changes correctly update the Keras import statement and tensor handling logic. However, I have a couple of suggestions. I've raised a concern about enabling run_eagerly=True, which can hurt performance and should ideally be avoided. I've also pointed out a minor redundancy in a variable assignment that can be cleaned up. Addressing these points will improve the quality and performance of the example.
| optimizer=keras.optimizers.Adam(learning_rate), | ||
| loss=loss, | ||
| steps_per_execution=10, | ||
| run_eagerly=True, | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enabling run_eagerly=True can significantly degrade training performance as it disables graph optimizations. While it can be useful for debugging, it's generally recommended to make the model and training loop compatible with graph execution (i.e., by setting run_eagerly=False or removing the argument). Was this added to work around a specific incompatibility with Keras 3's graph mode? If so, it would be better to address the underlying issue to ensure the example runs efficiently.
| I added  | 
Refactor loss function and tensor handling in metric learning for compatibility with Keras 3.