Dokumentation (english)

MobileNetV3-Small

Ultra-lightweight CNN optimized for mobile and edge device deployment

MobileNetV3-Small is the compact variant of MobileNetV3, designed specifically for mobile and edge devices through neural architecture search and the NetAdapt algorithm. With only 2.5 million parameters (~5MB model size), it delivers impressive accuracy while maintaining minimal latency and power consumption. This model prioritizes efficiency above all else, making it the go-to choice for resource-constrained deployments.

When to Use MobileNetV3-Small

MobileNetV3-Small is ideal for:

  • Mobile applications running on smartphones and tablets
  • Edge devices with limited compute and memory (IoT, embedded systems)
  • Real-time applications where latency is critical (<10ms inference)
  • Battery-powered devices where power efficiency matters
  • Offline deployment where model size limits downloads

Choose MobileNetV3-Small when deployment constraints (size, speed, power) are more important than achieving maximum accuracy.

Strengths

  • Extremely lightweight: Only 2.5M parameters, ~5MB model size
  • Fastest inference: Optimized for mobile CPUs and GPUs
  • Low power consumption: Minimal battery drain for mobile apps
  • Hardware-aware: Designed with mobile hardware constraints in mind
  • Quantization-ready: Easy to compress further with minimal accuracy loss
  • Production proven: Widely used in mobile applications
  • Fast training: Small model trains quickly even on modest GPUs

Weaknesses

  • Lower accuracy: 5-10% lower than ResNet-50 on complex tasks
  • Limited capacity: Struggles with fine-grained or complex classification
  • Small dataset only: Best with <5,000 images; larger data underutilized
  • Not for maximum accuracy: Choose larger models when accuracy is priority
  • Architecture complexity: Harder to modify than simple CNNs despite small size

Architecture Overview

Efficient Mobile Blocks

MobileNetV3-Small uses hardware-efficient blocks optimized through neural architecture search:

  1. Efficient Stem: Lightweight initial convolution
  2. Inverted Residual Blocks: Mobile bottlenecks with
    • Expansion layers (1x1 conv)
    • Efficient depthwise convolutions
    • SE (Squeeze-and-Excitation) modules (selective)
    • Linear bottlenecks
  3. Efficient Head: Optimized final layers
  4. H-Swish Activation: Hardware-efficient non-linearity

Optimizations:

  • Removes expensive layers in critical sections
  • Uses efficient activation functions
  • Optimizes channel counts for mobile hardware

Specifications:

  • Parameters: ~2.5M
  • Model size: ~5MB
  • Input: 224x224 RGB
  • Inference: <10ms on mobile devices

Parameters

Training Configuration

Training Images

  • Type: Folder
  • Description: Directory containing training images organized in class subfolders
  • Required: Yes
  • Minimum: 200 images
  • Optimal: 500-2,000 images (more is not always better for tiny models)

Batch Size (Default: 32)

  • Range: 16-128
  • Recommendation:
    • 32-64 for 4GB GPU
    • 64-128 for 8GB+ GPU
    • Very small model allows large batches
  • Impact: Large batches provide stable training

Epochs (Default: 10)

  • Range: 10-100
  • Recommendation:
    • 10-20 for datasets >5,000 images
    • 20-50 for datasets 1,000-5,000 images
    • 50-100 for small datasets <1,000 images
  • Impact: Small capacity requires more epochs to converge

Learning Rate (Default: 0.001)

  • Range: 5e-4 to 5e-3
  • Recommendation:
    • 1e-3 (0.001) for standard training
    • 5e-4 for very small datasets
    • 2e-3 for large datasets
  • Impact: Relatively robust to learning rate

Use Quantization (Default: false)

  • Type: Boolean
  • Description: Enable quantization for further size reduction and speedup
  • Recommendation: false during training, enable for deployment
  • Impact: Can reduce model to ~1.5MB with minimal accuracy loss

Configuration Tips

Dataset Size Recommendations

Tiny Datasets (200-500 images)

  • Best choice for deep learning on tiny data
  • Configuration: learning_rate=5e-4, epochs=60-100, batch_size=16
  • Maximum augmentation
  • Still consider classical ML for very small data

Small Datasets (500-2,000 images)

  • Excellent choice - optimal range
  • Configuration: learning_rate=1e-3, epochs=30-50, batch_size=32
  • Heavy augmentation
  • Expect good accuracy relative to data size

Medium Datasets (2,000-5,000 images)

  • Good choice but approaching limits
  • Configuration: learning_rate=1e-3, epochs=20-30, batch_size=64
  • Standard augmentation
  • Consider EfficientNet-B0 for better accuracy

Large Datasets (>5,000 images)

  • Not optimal - use larger model
  • MobileNetV3-Small cannot fully leverage large data
  • Use only if deployment constraints are absolute

Fine-tuning Best Practices

  1. High Learning Rates: Can handle 1e-3 or higher
  2. Long Training: Don't be afraid of 50+ epochs
  3. Large Batches: Use 64-128 batch size
  4. Augmentation Heavy: Critical for small model
  5. Quantization: Enable post-training for deployment
  6. Monitor Overfitting: Small capacity limits overfitting risk

Hardware Requirements

Minimum Configuration

  • GPU: 2-4GB VRAM (any modern GPU)
  • RAM: 8GB system memory
  • Storage: 5MB model + dataset

Recommended Configuration

  • GPU: 4GB VRAM (even integrated GPUs work)
  • RAM: 8GB system memory
  • Storage: Any storage is fine

CPU Training

  • Viable and practical - small model trains reasonably on CPU
  • 5-10x slower than GPU but acceptable
  • Good option if no GPU available

Mobile/Edge Deployment

  • Designed for this - optimal choice
  • ~5MB model fits all mobile constraints
  • Fast inference on mobile CPUs (10-20ms)
  • Faster on mobile GPUs (2-5ms)
  • Enable quantization for 1.5MB model

Common Issues and Solutions

Accuracy Lower Than Desired

Problem: Model accuracy below requirements

Solutions:

  1. This is expected - MobileNetV3-Small trades accuracy for efficiency
  2. Collect more training data (up to 5,000 images)
  3. Increase augmentation
  4. Train longer (50+ epochs)
  5. Upgrade to EfficientNet-B0 or ResNet-50 if accuracy critical

Model Not Learning

Problem: Loss not decreasing

Solutions:

  1. Increase learning rate to 2e-3
  2. Check data loading and labels
  3. Reduce augmentation intensity
  4. Train for many more epochs (small model converges slowly)
  5. Verify sufficient data variation

Overfitting (Rare)

Problem: Training accuracy much higher than validation

Solutions:

  1. Unusual for MobileNetV3-Small due to small capacity
  2. Add more aggressive augmentation
  3. Collect more data
  4. May indicate data leakage - check train/val split

Training Takes Too Long

Problem: Despite small size, training is slow

Solutions:

  1. Increase batch_size to 64 or 128
  2. Use mixed precision training
  3. Check data loading pipeline
  4. Ensure GPU is being utilized

Example Use Cases

Mobile Plant Identifier

Scenario: On-device plant species identification (20 species)

Configuration:

Model: MobileNetV3-Small
Batch Size: 48
Epochs: 40
Learning Rate: 1e-3
Images: 1,500 plant images (75 per species)
Use Quantization: true (for deployment)

Why MobileNetV3-Small: Mobile app, offline operation, battery constraints, acceptable accuracy

Expected Results: 75-82% accuracy, <2MB quantized model, fast inference

IoT Camera Classification

Scenario: Edge camera classifying 10 activity types

Configuration:

Model: MobileNetV3-Small
Batch Size: 64
Epochs: 50
Learning Rate: 1e-3
Images: 3,000 activity images (300 per type)
Use Quantization: true

Why MobileNetV3-Small: Edge deployment, power constraints, real-time requirements, limited storage

Expected Results: 83-88% accuracy, real-time inference on edge device

Quick Prototyping

Scenario: Rapid iteration for proof-of-concept (5 classes)

Configuration:

Model: MobileNetV3-Small
Batch Size: 32
Epochs: 25
Learning Rate: 1e-3
Images: 500 images (100 per class)

Why MobileNetV3-Small: Fast training for iteration, small dataset, need quick results

Expected Results: 70-80% accuracy, rapid development cycle

Comparison with Alternatives

MobileNetV3-Small vs MobileNetV3-Large

Choose MobileNetV3-Small when:

  • Absolute smallest size needed
  • Most constrained devices
  • Battery life critical
  • Latency <10ms required

Choose MobileNetV3-Large when:

  • Can afford ~10MB model
  • Need 3-5% better accuracy
  • Device has moderate resources
  • Latency <20ms acceptable

MobileNetV3-Small vs EfficientNet-B0

Choose MobileNetV3-Small when:

  • Model size <10MB required
  • Mobile/embedded deployment
  • Fastest inference needed
  • Simplest possible model

Choose EfficientNet-B0 when:

  • Can afford ~20MB model
  • Accuracy more important
  • Training on cloud/server
  • Have more data (>2,000 images)

MobileNetV3-Small vs ResNet-18

Choose MobileNetV3-Small when:

  • Deploying to mobile/edge
  • Model size <10MB required
  • Power efficiency critical
  • Mobile-optimized architecture needed

Choose ResNet-18 when:

  • Server/cloud deployment
  • Accuracy more important than size
  • Training speed critical (ResNet-18 faster to train)
  • More proven architecture preferred

MobileNetV3-Small vs ViT Base

Choose MobileNetV3-Small when:

  • Deployment constraints exist
  • Model size <10MB
  • Fast inference required
  • Dataset <5,000 images

Choose ViT Base when:

  • No deployment constraints
  • Maximum accuracy needed
  • Have large dataset (>5,000 images)
  • Server deployment
  • 70x larger model acceptable

Command Palette

Search for a command to run...

Schnellzugriffe
STRG + KSuche
STRG + DNachtmodus / Tagmodus
STRG + LSprache ändern

Software-Details
Kompiliert vor 1 Tag
Release: v4.0.0-production
Buildnummer: master@64a3463
Historie: 68 Items