Download train.py from itsrocktime9696/Vision-Guided_Robotic_Manipulation_using_DeepRL: direct link, hf CLI and curl.
- Browser
- Download file 1.6 kB
-
https://huggingface.co/itsrocktime9696/Vision-Guided_Robotic_Manipulation_using_DeepRL/resolve/main/train.py
- Command line
-
hf download hf://itsrocktime9696/Vision-Guided_Robotic_Manipulation_using_DeepRL/train.py
-
curl -L -o train.py https://huggingface.co/itsrocktime9696/Vision-Guided_Robotic_Manipulation_using_DeepRL/resolve/main/train.py
1.6 kB
| import os | |
| import torch | |
| from stable_baselines3 import PPO | |
| from stable_baselines3.common.callbacks import CheckpointCallback # <--- NEW IMPORT | |
| from kuka_env import KukaReachingEnv | |
| from utils import MetricsCallback | |
| if __name__ == "__main__": | |
| os.makedirs("models", exist_ok=True) | |
| os.makedirs("models/checkpoints", exist_ok=True) # <--- NEW FOLDER | |
| os.makedirs("logs", exist_ok=True) | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| print(f"Training on device: {device.upper()}") | |
| print("Initializing Environment...") | |
| env = KukaReachingEnv(render_mode=None) | |
| print("Setting up PPO with Convolutional Neural Network (CNN)...") | |
| model = PPO( | |
| "CnnPolicy", | |
| env, | |
| verbose=1, | |
| tensorboard_log="./logs/", | |
| device=device, | |
| batch_size=128, | |
| n_steps=2048 | |
| ) | |
| # 1. Our custom metric tracker | |
| metrics_callback = MetricsCallback() | |
| # 2. NEW: The Checkpoint Saver! | |
| # Saves a backup of the model every 50,000 steps | |
| checkpoint_callback = CheckpointCallback( | |
| save_freq=50_000, | |
| save_path="./models/checkpoints/", | |
| name_prefix="ppo_vision" | |
| ) | |
| print("Starting Deep Vision Training (3,000,000 steps)...") | |
| print("Backups will be saved automatically to models/checkpoints/") | |
| # Pass BOTH callbacks as a list | |
| model.learn( | |
| total_timesteps=3_000_000, | |
| callback=[metrics_callback, checkpoint_callback] | |
| ) | |
| print("Training complete! Saving the final model...") | |
| model.save("models/ppo_vision_kuka") | |
| env.close() |