import rl_main.utils as utils os.environ["CUDA_VISIBLE_DEVICES"] = CUDA_VISIBLE_DEVICES_NUMBER_LIST if __name__ == "__main__": torch.manual_seed(SEED) if torch.cuda.is_available(): torch.cuda.manual_seed(SEED) torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True utils.make_output_folders() utils.ask_file_removal() env = rl_utils.get_environment() rl_model = rl_utils.get_rl_model(env, -1) utils.print_configuration(env, rl_model) try: chief = Process(target=utils.run_chief, args=()) chief.start() time.sleep(1.5) workers = [] for worker_id in range(NUM_WORKERS): worker = Process(target=utils.run_worker, args=(worker_id, )) workers.append(worker) worker.start()
# -*- coding:utf-8 -*- import glob import pickle import time import zlib from collections import deque import numpy as np from rl_main.main_constants import * from rl_main.utils import exp_moving_average import rl_main.rl_utils as rl_utils env = rl_utils.get_environment(owner="worker") class Worker: def __init__(self, logger, worker_id, worker_mqtt_client): self.worker_id = worker_id self.worker_mqtt_client = worker_mqtt_client self.rl_algorithm = rl_utils.get_rl_algorithm(env=env, worker_id=worker_id, logger=logger) self.score = 0 self.global_max_ema_score = 0 self.global_min_ema_loss = 1000000000 self.local_scores = [] self.local_losses = []