Exemplo n.º 1
0
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()
Exemplo n.º 2
0
# -*- 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 = []