| | --- |
| | 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 |
| |
|
| | --- |