--- language: en license: mit library_name: pytorch tags: - image-classification - computer-vision - transfer-learning - pokemon - resnet18 metrics: - accuracy model-index: - name: pokemon-resnet18-transfer-learning results: - task: type: image-classification name: Image Classification dataset: name: Custom Pokemon Dataset (course week 8 style) type: imagefolder metrics: - type: accuracy value: 0.80 name: test_accuracy --- # Pokemon ResNet18 Transfer Learning Classifier ## Model Description This model is a transfer-learning image classifier based on ResNet18, fine-tuned on a custom Pokemon image dataset with 6 classes: - charizard - charmander - charmeleon - ditto - eevee - ekans The model was trained for the mandatory exercise "Computer Vision Classification & Model Comparison" and is intended to be compared against: - an open-source zero-shot model (CLIP) - a closed-source vision model (OpenAI) ## Model Details - Architecture: ResNet18 (`torchvision.models.resnet18`) - Framework: PyTorch - Input size: 224 x 224 RGB - Output classes: 6 - Checkpoint format: `.pth` (`state_dict` + metadata) ## Training Data Dataset structure: - `data/pokemon/train/` - `data/pokemon/test/` Classes: - `charizard`, `charmander`, `charmeleon`, `ditto`, `eevee`, `ekans` ## Preprocessing Training transforms: - `RandomResizedCrop(224)` - `RandomHorizontalFlip()` - `ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2)` - `Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])` Evaluation transforms: - `Resize(256)` - `CenterCrop(224)` - `Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])` ## Training Procedure - Loss: CrossEntropyLoss - Optimizer: Adam - Learning rate: `1e-4` - Weight decay: `1e-4` - Batch size: `16` - Epochs: `4` - Device: CPU ## Evaluation Results Final performance from project reports: - Best validation accuracy: `0.83784` - Test accuracy: `0.80` Class-level behavior (high-level): - Strong performance on `ditto`, `charmander`, `ekans` - Main confusion observed between `charizard`, `charmeleon`, and `eevee` on some samples ## Intended Use This model is intended for: - educational experiments in transfer learning - small-scale Pokemon image classification demos - model-comparison workflows against CLIP/OpenAI vision systems It is not intended for production or safety-critical applications. ## Limitations - Small custom dataset - Limited class coverage (only 6 classes) - Sensitivity to style/domain shift (sprites vs photos, color variants, edited images) ## Ethical Considerations This is a toy educational classifier trained on non-sensitive image categories. No personal or biometric data is used. ## How to Use Load checkpoint contents: - `state_dict`: model weights - `labels`: class names - `image_size`: expected size - `architecture`: model family For complete inference logic and app integration, see the project source implementation. ## Reproducibility Artifacts - Model checkpoint: `custom_resnet18.pth` - Project metrics files: - `custom_model_metrics.json` - `model_comparison.json` ## Links - Hugging Face Space: `https://huggingface.co/spaces/kukalend/computer-Vision-classification` - Hugging Face model repo: `https://huggingface.co/kukalend/pokemon-transfer-resnet18`