-
Notifications
You must be signed in to change notification settings - Fork 617
Add triplet hard loss with soft margin #959
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
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed (or fixed any issues), please reply here with What to do if you already signed the CLAIndividual signers
Corporate signers
ℹ️ Googlers: Go here for more info. |
@googlebot I signed it! |
CLAs look good, thanks! ℹ️ Googlers: Go here for more info. |
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.
Hi @HauserA, thanks for the contribution!
Generally LGTM. Could you update __init__.py? Also, I would suggest put the tests into triplet_test.py as they belong to the same family. Thank you again!
|
||
def get_config(self): | ||
config = { | ||
"margin": self.margin, |
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.
Should we also serialize self.soft
here?
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.
Yes
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.
Thank you again for the contribution 😃
* triplet hard loss * triplet hard test * format with black * FaceNet reference * spelling correction * soft margin version * test for soft margin version * Update description of loss function * moved tests into triplet_test.py * Added triplet_hard_loss, TripletHardLoss to init * flake8 unused variable * added typechecks for __init__ * serialize self.soft
Added batch hard loss with soft margin version as in In Defense of the Triplet Loss for Person Re-Identification.
The difference to triplet_semihard_loss is the hard negative and hard positive mining and the option for a soft margin with the softplus-function instead of a hard margin.