Overview
Donkeycar supports PyTorch models through a modular architecture similar to Keras parts. PyTorch models can be used interchangeably with Keras models in your vehicle. Location:donkeycar/parts/pytorch/
Getting Started
Installation
Basic Usage
Available Models
ResNet18
Transfer learning model based on ImageNet pre-trained ResNet18. Location:donkeycar/parts/pytorch/ResNet18.py
- Transfer Learning: Leverages ImageNet pre-trained weights
- Fixed Input Size: Requires 224x224x3 images
- High Accuracy: Better feature extraction than training from scratch
- GPU Recommended: Computationally intensive
myconfig.py:
Model Utilities
get_model_by_type
Location:donkeycar/parts/pytorch/torch_utils.py:4
'resnet18'- ResNet18 transfer learning model- (Additional models can be added)
Training PyTorch Models
Training Script
Location:donkeycar/parts/pytorch/torch_train.py
Training Command
Dataset Handling
DonkeyDataset
Location:donkeycar/parts/pytorch/torch_data.py
PyTorch Dataset class for loading Donkeycar tub data.
Model Inference
Loading Saved Models
Running Inference
In Vehicle Loop
Model Export
TorchScript (JIT Compilation)
ONNX Export
Configuration
Inmyconfig.py:
Creating Custom PyTorch Models
Performance Optimization
Mixed Precision Training
Model Pruning
Common Issues
CUDA Out of Memory
- Reduce batch size
- Use gradient accumulation
- Enable mixed precision training
- Clear cache:
torch.cuda.empty_cache()
Model Not Learning
- Check learning rate (try 1e-4 to 1e-3)
- Verify data preprocessing
- Check for label errors
- Monitor gradients for vanishing/exploding
Inference Too Slow
- Convert to TorchScript
- Use GPU if available
- Batch multiple frames
- Optimize image preprocessing
Next Steps
- Keras Models - Alternative framework
- Data Stores - Prepare training data
- Custom Parts - Create custom models
