/ Модель

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

Лицензия
MIT
Архитектура
scene_vit · dense
Базовая модель
vit-base-patch16-224
Библиотека
transformers
Опубликована
30 авг 2026

SceneViT-Nano-P8-64

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

Компактный Vision Transformer для классификации изображений сцен, обученный на Intel Image Classification.

19скачиваний за 30 дней0лайковвеса обновлены30 авг 2026

Бенчмарки

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

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

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

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

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

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

TheSon2202/SceneViT-Nano-P8-64 — компактная модель Vision Transformer для классификации изображений со сценами, разработанная автором карточки и обученная с нуля на наборе Intel Image Classification. В README указаны размер изображения 224×224 пикселя, патчи 8×8, скрытая размерность 64, 4 головы внимания и 8 слоёв. Для тестового набора заявлены точность 83,90% и Macro F1 83,95%. Модель предназначена для отнесения изображений к категориям сцен; веса доступны в форматах ONNX и safetensors и могут использоваться через Transformers или ONNX Runtime. Лицензия — MIT.

Карточка указывает английский язык, однако классификация изображений не требует текстового ввода или вывода. Результаты приведены автором README и не сопровождаются описанием состава тестовой выборки или независимой оценкой.

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

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

Ограничения

Заявленная точность 83,90% относится к тестовому набору Intel Image Classification и может не отражать качество на других данных. Модель рассчитана на изображения 224×224 пикселя; перенос на иные категории сцен не описан.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

SceneViT-Nano-P8-64

A Nano Vision Transformer (ViT) model built from scratch for scene classification tasks, trained on the Intel Image Classification dataset.

Build and Train pipeline here: Open In Kaggle

Model Specifications

  • Patch Size: 8x8
  • Image Size: 224x224
  • Hidden Size: 64
  • Attention Heads: 4
  • Hidden Layers: 8
  • Validation Accuracy: ~84.30%

Training Summary & Progression

The custom Vision Transformer model was trained for 30 epochs on the Intel Image Classification dataset using a Cosine Annealing learning rate scheduler and early stopping.

Training and Validation Metrics Table

EpochTrain LossTrain Acc (%)Val LossVal Acc (%)
11.378144.61%1.160852.27%
21.028359.30%0.926764.20%
30.904564.72%0.802169.47%
40.807669.26%0.691273.77%
50.719073.10%0.666174.13%
60.665875.53%0.635276.37%
70.638076.80%0.587278.27%
80.603578.14%0.561878.73%
90.591978.33%0.541879.70%
100.571778.68%0.526280.53%
110.551879.70%0.513280.57%
120.534580.67%0.506480.93%
130.527780.84%0.498281.17%
140.515981.31%0.494981.77%
150.502081.36%0.490182.03%
160.498581.71%0.483781.57%
170.478182.43%0.494981.77%
180.478182.53%0.463482.57%
190.463783.06%0.469982.23%
200.459583.37%0.464482.70%
210.456783.36%0.455782.80%
220.444983.60%0.452083.20%
230.441284.10%0.450083.50%
240.443283.93%0.445683.53%
250.428684.39%0.440784.30%
260.430284.42%0.441283.83%
270.422584.65%0.440983.90%
280.419484.75%0.439384.00%
290.424184.55%0.438283.97%
300.415584.72%0.438183.90%

Training Curves Visualization

The graphs below illustrate the progression of Loss and Accuracy across all 30 training epochs:

The model achieves stable convergence with a peak validation accuracy of 84.30% and minimal overfitting.

Final Evaluation Results from TestSet

  • Test Loss: 0.4381
  • Test Accuracy: 83.90%
  • Macro F1-Score: 83.95%

Usage

from PIL import Image
from torchvision import transforms
import torch.nn.functional as F
import matplotlib.pyplot as plt
import glob
import random
import torch
from transformers import AutoModelForImageClassification

# Step 1: Download and load the model from Hugging Face Hub first
print("Loading model from Hugging Face...")
model = AutoModelForImageClassification.from_pretrained(
    "TheSon2202/SceneViT-Nano-P8-64", trust_remote_code=True
)
model.eval()
print("Model loaded successfully!")


# Step 2: Define a clean prediction and visualization function using direct categories list
def predict_scene(
    model,
    image_search_path="/kaggle/input/datasets/thangcpd/intelimageclassification/data/seg_train/seg_train/**/*.jpg",
):
  # Get image size from the model's configuration
  image_size = getattr(model.config, "image_size", 224)

  # Define image preprocessing pipeline
  test_transform = transforms.Compose([
      transforms.Resize((image_size, image_size)),
      transforms.ToTensor(),
      transforms.Normalize(
          mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]
      ),
  ])

  # Search for image paths in the dataset
  image_paths = glob.glob(image_search_path, recursive=True)
  if len(image_paths) == 0:
    image_paths = glob.glob("/kaggle/input/**/*.jpg", recursive=True)

  if len(image_paths) == 0:
    print("No image files found in the specified path.")
    return

  # Randomly pick an image and preprocess it
  img_path = random.choice(image_paths)
  raw_image = Image.open(img_path).convert("RGB")
  input_tensor = test_transform(raw_image).unsqueeze(0)

  # Run inference
  with torch.no_grad():
    outputs = model(input_tensor)
    logits = outputs.logits
    probabilities = F.softmax(logits, dim=-1)

    pred_idx = torch.argmax(probabilities, dim=-1).item()
    confidence = probabilities[0][pred_idx].item()

  # Directly use the fixed categories list matching model training
  categories = ["buildings", "forest", "glacier", "mountain", "sea", "street"]
  predicted_label = (
      categories[pred_idx] if pred_idx < len(categories) else str(pred_idx)
  )

  # Display the image with result shown on the plot title
  plt.figure(figsize=(4, 4))
  plt.imshow(raw_image)
  plt.title(f"Pred: {predicted_label} ({confidence * 100:.1f}%)", color="green")
  plt.axis("off")
  plt.show()


# Example usage: Call the function using the pre-loaded model
predict_scene(model)

How to use ONNX

!pip install onnxruntime
!pip install onnxscript

onnx_file_path = hf_hub_download(
    repo_id="TheSon2202/SceneViT-Nano-P8-64", filename="vit_model.onnx"
)

# read model through ort_session
ort_session = ort.InferenceSession("vit_model.onnx")

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

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

GPU в ailist

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

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

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

0 моделей