XylariaSelfDriving / README.md
Reality123b's picture
Update README.md
3df1780 verified
---
license: apache-2.0
---
# MoE Car Model
## Overview
The MoE (Mixture of Experts) Car Model is a deep learning model designed for autonomous driving and vehicle behavior prediction. It leverages a Mixture of Experts architecture to optimize decision-making across different driving scenarios, improving efficiency and adaptability in real-world environments.
## WARNING: THIS MAY SHOW UNSAFE AS THIS RUNS ResNET WHEN YOU USE THE MODEL
## Model Architecture
The MoE Car Model consists of the following key components:
- **Input Layer:** Accepts sensory data (camera images, LiDAR, GPS, IMU, etc.).
- **Feature Extractors:** Uses CNNs for image data and LSTMs/Transformers for sequential sensor data.
- **Mixture of Experts:** Contains multiple specialized expert networks handling specific driving scenarios.
- **Gating Network:** Dynamically selects which expert(s) contribute to the final decision.
- **Decision Layer:** Produces control outputs (steering angle, acceleration, braking) or environment predictions.
### Model Parameters
- **Total Parameters:** ~40m parameters
- **Number of Experts:** 16
- **Expert Architecture:** Transformer-based with 12 layers per expert
- **Gating Network:** 4-layer MLP with softmax activation
- **Feature Extractors:** ResNet-50 for images, Transformer for LiDAR/GPS
## Training Details
- **Dataset:** 10 million driving scenarios from real-world and simulated environments
- **Batch Size:** 128
- **Learning Rate:** 2e-4 (decayed using cosine annealing)
- **Optimizer:** AdamW
- **Training Time:** 1h 24m 28s
- **Hardware:** 1x 16gb T4
- **Framework:** PyTorch
## Inference
To run inference using the MoE Car Model:
### Install Dependencies
```bash
pip install torch torchvision numpy opencv-python
```
### Load and Run the Model
```python
import torch
import torchvision.transforms as transforms
import cv2
from model import MoECarModel # Assuming model implementation is in model.py
# Load model
model = MoECarModel()
model.load_state_dict(torch.load("moe_car_model.pth"))
model.eval()
# Preprocessing function
def preprocess_image(image_path):
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
transform = transforms.Compose([
transforms.ToPILImage(),
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
])
return transform(image).unsqueeze(0)
# Load sample image
image_tensor = preprocess_image("test_image.jpg")
# Run inference
with torch.no_grad():
output = model(image_tensor)
print("Predicted control outputs:", output)
```
## Applications
- Autonomous driving
- Driver assistance systems
- Traffic behavior prediction
- Reinforcement learning simulations
## Future Improvements
- Optimization for edge devices
- Integration with real-time sensor fusion
- Reinforcement learning fine-tuning
---