/ Модель

Характеристики

Лицензия
MIT
Архитектура
efficientnet · dense
Базовая модель
efficientnet-b0
Опубликована
20 мар 2026

Food101-EfficientNet-B0

Классификация изображенийИзображение → label

Дообученная EfficientNet-B0 распознаёт блюда на изображениях, относя их к классам Food-101.

104скачиваний за 30 дней1лайквеса обновлены2 апр 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Lumia101/Food101-EfficientNet-B0 — дообученная Lumia101 модель EfficientNet-B0, предварительно обученная на ImageNet-1K и адаптированная для классификации изображений из набора Food-101. Она предсказывает класс блюда на изображении и подходит для распознавания еды в пользовательских приложениях и исследовательских прототипах. В README указана точность 79,57%; модель обучалась 20 эпох с AdamW, размером пакета 256 и планировщиком CosineAnnealingLR.

Репозиторий содержит веса в формате safetensors и использует PyTorch. Классификатор отличается от стандартного EfficientNet-B0, поэтому модель несовместима напрямую с timm и transformers; автор предлагает запускать её через Colab или Hugging Face Space. Лицензия — MIT.

Сценарии применения

  • определение блюда по фотографии
  • автоматическая категоризация фотографий еды
  • создание прототипа приложения для распознавания блюд

Ограничения

Заявленная точность составляет 79,57% на Food-101; результаты на других наборах данных не приведены. Из-за изменённого классификатора модель напрямую несовместима с timm и transformers.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

🍨🍦 Lumia101/Food101-EfficientNet-B0

This model is a fine-tuned model of EfficientNet-B0, pre-trained on ImageNet-1K, for the Food 101 dataset.

🔍 Model Information

  • Accuracy: 79.57%
  • Batch Size: 256
  • Optimizer: AdamW
  • Learning Rate
    • Feature Extractor: 1e-4
    • Classifier: 1e-3
  • LR Scheduler Type: CosineAnnealingLR
  • Epochs: 20
  • AMP: Native AMP

📈 Training Log

See TensorBoard.

💡 How to use

This model is not compatible with timm or transformer because its Classifier layer differs from the standard EfficientNet-B0. You can choose one of two methods to use this model.

1: Use Colab

Paste the following code into Colab and run it. Runtime doesn't matter.

# Import libraries
import torch
import torch.nn as nn
import torchvision.models as models
from torchvision.transforms import v2
from safetensors.torch import load_file
from PIL import Image
import json
from huggingface_hub import hf_hub_download

# Download my files
hf_hub_download(
    repo_id="Lumia101/Food101-EfficientNet-B0",
    filename="config.json",
    local_dir='.'
)

hf_hub_download(
    repo_id="Lumia101/Food101-EfficientNet-B0",
    filename="model.safetensors",
    local_dir='.'
)

# Load classes
with open("config.json") as f:
    config = json.load(f)
id2label = config["id2label"]

# Make model
model = models.efficientnet_b0(weights=None)
model.classifier = nn.Sequential(
    nn.Dropout(p=0.2, inplace=True),
    nn.Linear(1280, 512),
    nn.SiLU(),
    nn.Dropout(0.2),
    nn.Linear(512, 101)
)

# Load weights
state_dict = load_file("model.safetensors")
model.load_state_dict(state_dict)
model.eval()

# Transform it
transform = v2.Compose([
    v2.Resize(160),
    v2.CenterCrop(128),
    v2.ToImage(),
    v2.ToDtype(torch.float32, scale=True),
    v2.Normalize(
        mean=(0.485, 0.456, 0.406),
        std=(0.229, 0.224, 0.225),
    ),
])

# Inference code
def predict(image_path, top_k=5):
    img = Image.open(image_path).convert("RGB")
    tensor = transform(img).unsqueeze(0)

    with torch.no_grad():
        output = model(tensor)
        probs = torch.softmax(output, dim=1)
        top = torch.topk(probs, top_k)

    return [(id2label[str(i.item())], round(p.item() * 100, 2))
            for i, p in zip(top.indices[0], top.values[0])]

# Classify it!
results = predict("your_own_picture.png")
for label, prob in results:
    print(f"{label}: {prob}%")

2: Use HF Space

You can use it more easily by accessing the My HuggingFace Space I created.

⚒️ Framework used

  • PyTorch
    • torch 2.10.0
    • torchvision 0.25.0
  • datasets 4.0.0
  • safetensors 0.7.0
  • tqdm 4.67.3

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · image-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
EfficientNetForImageClassification
Ревизия весов
d93cc99

0 моделей