Msk7000's picture
Upload 2 files
8bb2faf verified
---
title: Image Classification 2015 vs 2025
emoji: 🔍
colorFrom: green
colorTo: gray
sdk: gradio
sdk_version: 6.15.2
app_file: app.py
pinned: false
python_version: "3.10"
suggested_hardware: cpu-basic
---
# Image Classification Demo — 2015 vs 2025
**画像分類デモ — 2015 vs 2025 実装比較**
A Gradio app that demonstrates how dramatically machine learning implementation
complexity has changed over a decade — using the same task (image → category
prediction) as a benchmark.
同じタスク(画像 → カテゴリ予測)を使って、10年間で機械学習の実装コストが
いかに変化したかを比較する Gradio デモアプリです。
---
## What This App Does / このアプリについて
Upload any image and get a top-5 category prediction from a pre-trained
Vision Transformer (ViT). Alongside the result, the app shows the code
required to build the same classifier in **2015 (Theano + NumPy, ~130 lines)**
versus **2025 (HuggingFace Transformers, 5 lines)**.
画像をアップロードすると、事前学習済み ViT による上位5件の予測結果を表示します。
あわせて、**2015年(Theano + NumPy、約130行)****2025年(HuggingFace Transformers、5行)**
の実装コードを左右に並べて比較します。
---
## Implementation Comparison / 実装比較
| Item / 項目 | 2015 (Theano + NumPy) | 2025 (HuggingFace) |
|---|---|---|
| **Lines of code** / 実装行数 | ~130 lines | 5 lines |
| **Model** / モデル | Hand-written CNN / 手書き CNN | ViT-Base (pre-trained) / 事前学習済み |
| **Preprocessing** / 前処理 | Manual / 手動実装 | Automatic / 自動 |
| **Training** / 学習 | SGD written by hand / 手動記述 | Not required / 不要 |
| **Accuracy** / 精度目安 | ~70 % (CIFAR-10) | ~81 % (ImageNet) |
| **Compile step** / コンパイル | Tens of seconds / 数十秒 | Not required / 不要 |
---
## File Structure / ファイル構成
```
.
├── app.py # Gradio app — entry point / エントリポイント
├── model_2025.py # 2025 implementation: HuggingFace pipeline (5 lines)
│ # 2025 実装:HuggingFace pipeline(5 行)
├── model_2015.py # 2015 implementation: Theano CNN (reference / 参照用)
├── requirements.txt # Dependencies / 依存パッケージ
└── README.md # This file / このファイル
```
---
## Running Locally / ローカルでの起動
```bash
# 1. Clone / クローン
git clone https://huggingface.co/spaces/<your-username>/image-classification-2015-vs-2025
cd image-classification-2015-vs-2025
# 2. Install dependencies / 依存をインストール
pip install -r requirements.txt
# 3. Launch / 起動
python app.py
# → http://localhost:7860
```
> **Note / 注意:** On first launch, the ViT model (~330 MB) is downloaded from
> Hugging Face Hub automatically and cached in `~/.cache/huggingface/`.
>
> 初回起動時に ViT モデル(約330 MB)が HuggingFace Hub から自動ダウンロードされ、
> `~/.cache/huggingface/` にキャッシュされます。
---
## Hardware / 動作環境
This Space runs on **CPU Basic** (free tier — no GPU required).
ViT-Base inference on CPU typically takes **2–5 seconds** per image.
このSpaceは **CPU Basic**(無料枠)で動作します。GPU は不要です。
CPU 上での ViT-Base 推論は 1 枚あたり **2〜5秒** 程度です。
| Resource | Spec |
|---|---|
| Hardware | CPU Basic (2 vCPU / 16 GB RAM) |
| GPU | None / なし |
| Storage | Ephemeral (model cached via HF Hub) |
---
## About the 2015 Implementation / 2015年実装について
`model_2015.py` is **reference documentation only** — it requires Python 3.8
and Theano 1.0, which are no longer maintained and incompatible with Python 3.9+.
The file is included to illustrate the implementation burden of the era.
`model_2015.py`**参照用ドキュメント** です。Python 3.8 と Theano 1.0 が必要で、
現在はメンテナンスされておらず Python 3.9 以降では動作しません。
当時の実装コストを示す資料として収録しています。
What had to be hand-written in 2015 / 2015年当時に手書きが必要だったもの:
- Weight initialization for each layer / 各層の重み初期化
- Symbolic computation graph (conv → pool → softmax) / シンボルグラフ
- Loss function, gradient computation, SGD update rules / 損失・勾配・SGD更新則
- Theano function compilation / Theano 関数のコンパイル
- Image preprocessing (normalization, CHW transpose) / 画像前処理
- Training loop with manual batch splitting / 手動バッチ分割・学習ループ
- Model save / load / モデルの保存・読み込み
---
## Tech Stack / 技術スタック
| Library | Version | Purpose / 用途 |
|---|---|---|
| `transformers` | ≥ 4.40 | ViT model & pipeline |
| `torch` | ≥ 2.2 | Inference backend / 推論バックエンド |
| `Pillow` | ≥ 10.0 | Image I/O / 画像入出力 |
| `gradio` | ≥ 4.36 | Web UI |
---
## License / ライセンス
MIT