Comments (2)
I think the easiest way to make sure that distances are normalized is to make sure that all the embeddings are in the L2 sphere.
You can modify the code here:
with tf.variable_scope('model'):
# Compute the embeddings with the model
embeddings = build_model(is_training, images, params)
# L2 normalize the embeddings so that they lie in the L2 unit sphere
embeddings = tf.nn.l2_normalize(embeddings, axis=1)
If you L2 normalize the embeddings, the distance between two embeddings will always be between 0 and 2.
So your similarity score could just be the distance divided by 2.
Images of the same class should have a distance of 0 (or at least lower than the margin).
Images of different classes should have a distance between the margin and 2.
from tensorflow-triplet-loss.
@omoindrot
Hi,omoindrot
Thanks for your code,I meet some question, loss value is approximate of margin,i found that the distance is close to 0,I don't know how it was caused.
Does the output of the network need to be L2 normalized,?what is the role of L2 normalization?How to set the value of margin,if i don't use L2 normalized?
thanks
from tensorflow-triplet-loss.
Related Issues (20)
- What does 'embedding_mean_norm' mean? HOT 2
- loss=0 in step=101(after two step) HOT 1
- Saving weights of model and calculation of embeddings HOT 1
- Using batch_all_triplet_loss function HOT 2
- Embeddings Collapse very fast
- fraction_positive increasing HOT 4
- the function of _get_triplet_mask in triplet_loss.py
- base_model
- Multi domain triplet loss
- Why average loss value by `batch_size` when using `batch_hard` method?
- PyTorch Implmentation of triplet loss
- the difference between tf.contrib.losses.metric_learning.triplet_semihard_loss and batch_all_triplet_loss
- Implementation of metrics to monitor training process in tf.keras environment
- Advice on which loss to optimize HOT 2
- Performance issues in the program
- Performance issue in /model/tests (by P3) HOT 1
- Got Nan value when label's id is greater than 159 HOT 1
- hard triplet convergence!
- Some corrections in MNIST_dataset since TF 2.0
- OSS License compatibility question
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tensorflow-triplet-loss.