cifar10-iocnn-384-128
крошечный IOC-NN для CIFAR-10
Небольшая PyTorch-модель для классификации изображений CIFAR-10 от автора li-ion. Это MLP-архитектура 3072 → 384 → 128 → 10 всего с 1 230 602 параметрами; веса слоёв после первого ограничены неотрицательными, поэтому каждый логит выпукл по входу.
🎯 Ключевые особенности
- 📸 Вход — 32×32×3, развёрнутый в вектор из 3072 признаков.
- ⚙ Скрытые активации ELU; выход — сырые логиты, softmax/CrossEntropyLoss применяются снаружи.
- 🔒 Слои 2+ имеют веса ≥ 0: архитектура input-output convex (IOC-NN).
- 📌 Обязательный препроцессинг: деление на 255 и стандартизация по mean/std, посчитанным только на 50 000 train-изображениях CIFAR-10.
- 🗂 В первом слое 1 179 648 весов — около 95,8% всех параметров модели.
💻 Пример
import torch
from safetensors.torch import load_model
from modeling import IOCNN as Net
from preprocess import preprocess
model = Net(); load_model(model, 'model.safetensors'); model.eval()
logits = model(torch.tensor(preprocess(images_uint8)))
Подробнее
Тестовая точность — 48,24%, train — 87,02%; test loss — 3,2850, macro F1 — 0,4848.Обучение: SGD, lr 0,05, без momentum, batch 64, 100 эпох, cross-entropy.
Ограничения: небольшая MLP-модель и заметный разрыв train/test; нужен точный препроцессинг из карточки.
Порядок классов: 0 plane, 1 auto, 2 bird, 3 cat, 4 deer, 5 dog, 6 frog, 7 horse, 8 ship, 9 truck.








Комментарии