/
vasandi
/
AirSim
Обзор
Документация
Войти
/
vasandi
/
AirSim
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PythonClient/reinforcement_learning/dqn_car.py
67 строк
2 KB
Андрей Васильченко
сборка под ubuntu 26.04
08 июл 2026, 10:15
08 июл 2026, 10:15
d53c5a2
Код
Авторство
О чём код?
import setup_path import gym import airgym import time from stable_baselines3 import DQN from stable_baselines3.common.monitor import Monitor from stable_baselines3.common.vec_env import DummyVecEnv, VecTransposeImage from stable_baselines3.common.evaluation import evaluate_policy from stable_baselines3.common.callbacks import EvalCallback # Create a DummyVecEnv for main airsim gym env env = DummyVecEnv( [ lambda: Monitor( gym.make( "airgym:airsim-car-sample-v0", ip_address="127.0.0.1", image_shape=(84, 84, 1), ) ) ] ) # Wrap env as VecTransposeImage to allow SB to handle frame observations env = VecTransposeImage(env) # Initialize RL algorithm type and parameters model = DQN( "CnnPolicy", env, learning_rate=0.00025, verbose=1, batch_size=32, train_freq=4, target_update_interval=10000, learning_starts=200000, buffer_size=500000, max_grad_norm=10, exploration_fraction=0.1, exploration_final_eps=0.01, device="cuda", tensorboard_log="./tb_logs/", ) # Create an evaluation callback with the same env, called every 10000 iterations callbacks = [] eval_callback = EvalCallback( env, callback_on_new_best=None, n_eval_episodes=5, best_model_save_path=".", log_path=".", eval_freq=10000, ) callbacks.append(eval_callback) kwargs = {} kwargs["callback"] = callbacks # Train for a certain number of timesteps model.learn( total_timesteps=5e5, tb_log_name="dqn_airsim_car_run_" + str(time.time()), **kwargs ) # Save policy weights model.save("dqn_airsim_car_policy")