The EfficientNet_b1 model, fine-tuned on ImageNet-1k, is a robust solution for image classification tasks. In this blog, we’ll guide you through how to use this model for various tasks, including image classification, feature map extraction, and obtaining image embeddings.
Model Overview
- Model Type: Image classification feature backbone
- Model Stats:
- Parameters (M): 7.8
- GMACs: 0.6
- Activations (M): 9.4
- Image Size: Train = 224 x 224, Test = 256 x 256
- Papers:
- Dataset: ImageNet-1k
- Original Code Repository: GitHub
How to Use EfficientNet_b1
To use the EfficientNet_b1 model for image classification, feature extraction, and image embeddings, follow the instructions below.
1. Image Classification
The image classification workflow can be likened to a skilled chef preparing a gourmet dish. You start with first gathering your ingredients, which in this case, is your image. Then, you employ the EfficientNet model, which acts as your recipe, guiding you through classification. Here’s how to implement it:
python
from urllib.request import urlopen
from PIL import Image
import timm
# Load the image
img = Image.open(urlopen("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png"))
# Create and evaluate the model
model = timm.create_model('efficientnet_b1.ft_in1k', pretrained=True)
model = model.eval()
# Get model-specific transforms (normalization, resize)
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)
# Classify the image
output = model(transforms(img).unsqueeze(0)) # Create a batched tensor
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
2. Feature Map Extraction
Extracting feature maps is like taking a deep dive into a dish, examining the various layers of flavor. Each feature map reveals more about the image’s underlying details. Here’s how to get feature maps from EfficientNet:
python
# Load the image again
img = Image.open(urlopen("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png"))
# Create and prepare the model
model = timm.create_model('efficientnet_b1.ft_in1k', pretrained=True, features_only=True)
model = model.eval()
# Get model-specific transforms and classify
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)
output = model(transforms(img).unsqueeze(0)) # Process single image
for o in output: # Print shape of each feature map
print(o.shape)
3. Image Embeddings
Image embeddings can be thought of as condensed summaries, much like a fine wine distilled into a concentrated essence. You can obtain image embeddings as follows:
python
# Load the image again
img = Image.open(urlopen("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png"))
# Create and prepare the model without classifier
model = timm.create_model('efficientnet_b1.ft_in1k', pretrained=True, num_classes=0)
model = model.eval()
# Get model-specific transforms and compute embeddings
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)
output = model(transforms(img).unsqueeze(0)) # Get raw output
# Alternatively, without setting num_classes=0
output = model.forward_features(transforms(img).unsqueeze(0)) # Get pooled features
output = model.forward_head(output, pre_logits=True) # Final embeddings
Troubleshooting
If you encounter issues while using the EfficientNet_b1 model, consider the following troubleshooting ideas:
- Make sure all dependencies are installed, specifically the timm library and its associated packages.
- Confirm that the image URL is accessible and correctly formatted.
- Check that your runtime environment has the necessary resources, especially if running on a local machine.
- If you face errors during model loading, refer to the model details in the timm GitHub repository for proper instructions.
- For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
The Importance of EfficientNet
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.
With this guide, you’re equipped to harness the power of EfficientNet_b1 for image classification and beyond. Dive in and explore the capabilities of this sophisticated model!

