There are pre-trained models outputting Image Feature Vectors like https://tfhub.dev/google/imagenet/efficientnet_v2_imagenet21k_ft1k_s/feature_vector/2. While from the name one can deduce the architecture (EfficientNetV2) and the training data set (ImageNet-21K), I'm interested in how the training process was done. Was it trained "classically" for classification with some dense layers at the end that were chopped off after training? Or was some other technique like triplet loss applied?


2 Answers 2


This is described on the model page:

This model contains a trained instance of the network, packaged to get feature vectors from images. If you want the full model including the classification it was originally trained for, use google/imagenet/efficientnet_v2_imagenet21k_ft1k_s/classification/2 instead.

So the original model was trained for classification and then the last projection (the one projecting into the logits) was removed to create the image feature vector version.


I would exclude any triplet or margin loss simply because they are too specific for metric and similarity learning among classes of entities: for example the triplet loss was designed for face recognition, so to measure the "distance" of two images, which is required to be low if these belong to the same identity.

These image feature vectors models should be generally applicable to whatever downstream task (taking into account a possible fine-tuning), so, I'd say that these models are either: 1) trained with the method suggested by their own paper, 2) by also making use of modern practices, or even 3) by means of some self-supervised method so that to boost the representational power of the learned image vectors.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.