From 7497ffcb0fa0044ed1ff4184b66827343d235cfa Mon Sep 17 00:00:00 2001 From: Koha9 Date: Sun, 30 Oct 2022 04:13:14 +0900 Subject: [PATCH] Parallel Environment Discrete PPO finish Parallel Environment Discrete PPO finish. Runnable. --- .gitignore | 3 + Aimbot-PPO-Python/Pytorch/AimBotEnv-old.py | 161 +++++++ Aimbot-PPO-Python/Pytorch/AimbotEnv.py | 146 ++++++ Aimbot-PPO-Python/Pytorch/ppo.py | 291 ++++++++++++ Aimbot-PPO-Python/Pytorch/testEnv.py | 7 + Aimbot-PPO-Python/Pytorch/testarea.ipynb | 453 +++++++++++++++++++ Aimbot-PPO-Python/Tensorflow/GAIL-Main.ipynb | 49 +- 7 files changed, 1087 insertions(+), 23 deletions(-) create mode 100644 Aimbot-PPO-Python/Pytorch/AimBotEnv-old.py create mode 100644 Aimbot-PPO-Python/Pytorch/AimbotEnv.py create mode 100644 Aimbot-PPO-Python/Pytorch/ppo.py create mode 100644 Aimbot-PPO-Python/Pytorch/testEnv.py create mode 100644 Aimbot-PPO-Python/Pytorch/testarea.ipynb diff --git a/.gitignore b/.gitignore index ec13f9a..270a7f4 100644 --- a/.gitignore +++ b/.gitignore @@ -76,8 +76,11 @@ crashlytics-build.properties /Aimbot-PPO-Python/.vscode/ /Aimbot-PPO-Python/.mypy_cache/ /Aimbot-PPO-Python/__pycache__/ +/Aimbot-PPO-Python/Tensorflow/__pycache__/ +/Aimbot-PPO-Python/Pytorch/__pycache__/ /Aimbot-PPO-Python/Backup/ /Aimbot-PPO-Python/Build-MultiScene-WithLoad/ /Aimbot-PPO-Python/Build-CloseEnemyCut/ +/Aimbot-PPO-Python/Build-ParallelEnv/ /Aimbot-PPO-Python/PPO-Model/ /Aimbot-PPO-Python/GAIL-Expert-Data/ \ No newline at end of file diff --git a/Aimbot-PPO-Python/Pytorch/AimBotEnv-old.py b/Aimbot-PPO-Python/Pytorch/AimBotEnv-old.py new file mode 100644 index 0000000..a78e050 --- /dev/null +++ b/Aimbot-PPO-Python/Pytorch/AimBotEnv-old.py @@ -0,0 +1,161 @@ +from mlagents_envs.base_env import ActionTuple +from mlagents_envs.environment import UnityEnvironment + +import numpy as np +from numpy import ndarray + + +class makeEnv(object): + def __init__( + self, + envPath: str, + workerID: int = 1, + basePort: int = 100, + stackSize: int = 1, + stackIntercal: int = 0, + ): + self.env = UnityEnvironment( + file_name=envPath, + seed=1, + side_channels=[], + worker_id=workerID, + base_port=basePort, + ) + self.env.reset() + + # get enviroment specs + self.LOAD_DIR_SIZE_IN_STATE = 3 + self.TRACKED_AGENT = -1 + self.BEHA_SPECS = self.env.behavior_specs + self.BEHA_NAME = list(self.BEHA_SPECS)[0] + self.SPEC = self.BEHA_SPECS[self.BEHA_NAME] + self.OBSERVATION_SPECS = self.SPEC.observation_specs[0] # observation spec + self.ACTION_SPEC = self.SPEC.action_spec # action specs + + self.DISCRETE_SIZE = self.ACTION_SPEC.discrete_size + self.DISCRETE_SHAPE = list(self.ACTION_SPEC.discrete_branches) + self.CONTINUOUS_SIZE = self.ACTION_SPEC.continuous_size + self.SINGLE_STATE_SIZE = self.OBSERVATION_SPECS.shape[0] - self.LOAD_DIR_SIZE_IN_STATE + self.STATE_SIZE = self.SINGLE_STATE_SIZE * stackSize + + # stacked State + self.STACK_SIZE = stackSize + self.STATE_BUFFER_SIZE = stackSize + ((stackSize - 1) * stackIntercal) + self.STACK_INDEX = list(range(0, self.STATE_BUFFER_SIZE, stackIntercal + 1)) + self.statesBuffer = np.array([[0.0] * self.SINGLE_STATE_SIZE] * self.STATE_BUFFER_SIZE) + print("√√√√√Enviroment Initialized Success√√√√√") + + def step( + self, + actions: list, + behaviorName: ndarray = None, + trackedAgent: int = None, + ): + """change ations list to ActionTuple then send it to enviroment + + Args: + actions (list): PPO chooseAction output action list + behaviorName (ndarray, optional): behaviorName. Defaults to None. + trackedAgent (int, optional): trackedAgentID. Defaults to None. + + Returns: + ndarray: nextState, reward, done, loadDir, saveNow + """ + # take action to enviroment + # return mextState,reward,done + if self.DISCRETE_SIZE == 0: + # create empty discrete action + discreteActions = np.asarray([[0]]) + else: + # create discrete action from actions list + discreteActions = np.asanyarray([actions[0 : self.DISCRETE_SIZE]]) + if self.CONTINUOUS_SIZE == 0: + # create empty continuous action + continuousActions = np.asanyarray([[0.0]]) + else: + # create continuous actions from actions list + continuousActions = np.asanyarray([actions[self.DISCRETE_SIZE :]]) + + if behaviorName is None: + behaviorName = self.BEHA_NAME + if trackedAgent is None: + trackedAgent = self.TRACKED_AGENT + + # create actionTuple + thisActionTuple = ActionTuple(continuous=continuousActions, discrete=discreteActions) + # take action to env + self.env.set_actions(behavior_name=behaviorName, action=thisActionTuple) + self.env.step() + # get nextState & reward & done after this action + nextState, reward, done, loadDir, saveNow = self.getSteps(behaviorName, trackedAgent) + return nextState, reward, done, loadDir, saveNow + + def getSteps(self, behaviorName=None, trackedAgent=None): + """get enviroment now observations. + Include State, Reward, Done, LoadDir, SaveNow + + Args: + behaviorName (_type_, optional): behaviorName. Defaults to None. + trackedAgent (_type_, optional): trackedAgent. Defaults to None. + + Returns: + ndarray: nextState, reward, done, loadDir, saveNow + """ + # get nextState & reward & done + if behaviorName is None: + behaviorName = self.BEHA_NAME + decisionSteps, terminalSteps = self.env.get_steps(behaviorName) + if self.TRACKED_AGENT == -1 and len(decisionSteps) >= 1: + self.TRACKED_AGENT = decisionSteps.agent_id[0] + if trackedAgent is None: + trackedAgent = self.TRACKED_AGENT + + if trackedAgent in decisionSteps: # ゲーム終了していない場合、環境状態がdecision_stepsに保存される + nextState = decisionSteps[trackedAgent].obs[0] + nextState = np.reshape( + nextState, [self.SINGLE_STATE_SIZE + self.LOAD_DIR_SIZE_IN_STATE] + ) + saveNow = nextState[-1] + loadDir = nextState[-3:-1] + nextState = nextState[:-3] + reward = decisionSteps[trackedAgent].reward + done = False + if trackedAgent in terminalSteps: # ゲーム終了した場合、環境状態がterminal_stepsに保存される + nextState = terminalSteps[trackedAgent].obs[0] + nextState = np.reshape( + nextState, [self.SINGLE_STATE_SIZE + self.LOAD_DIR_SIZE_IN_STATE] + ) + saveNow = nextState[-1] + loadDir = nextState[-3:-1] + nextState = nextState[:-3] + reward = terminalSteps[trackedAgent].reward + done = True + + # stack state + stackedStates = self.stackStates(nextState) + return stackedStates, reward, done, loadDir, saveNow + + def reset(self): + """reset enviroment and get observations + + Returns: + ndarray: nextState, reward, done, loadDir, saveNow + """ + # reset buffer + self.statesBuffer = np.array([[0.0] * self.SINGLE_STATE_SIZE] * self.STATE_BUFFER_SIZE) + # reset env + self.env.reset() + nextState, reward, done, loadDir, saveNow = self.getSteps() + return nextState, reward, done, loadDir, saveNow + + def stackStates(self, state): + # save buffer + self.statesBuffer[0:-1] = self.statesBuffer[1:] + self.statesBuffer[-1] = state + + # return stacked states + return np.reshape(self.statesBuffer[self.STACK_INDEX], (self.STATE_SIZE)) + + def render(self): + """render enviroment""" + self.env.render() diff --git a/Aimbot-PPO-Python/Pytorch/AimbotEnv.py b/Aimbot-PPO-Python/Pytorch/AimbotEnv.py new file mode 100644 index 0000000..0f68631 --- /dev/null +++ b/Aimbot-PPO-Python/Pytorch/AimbotEnv.py @@ -0,0 +1,146 @@ +import gym +import numpy as np + +from numpy import ndarray +from mlagents_envs.base_env import ActionTuple +from mlagents_envs.environment import UnityEnvironment + + +class Aimbot(gym.Env): + def __init__( + self, + envPath: str, + workerID: int = 1, + basePort: int = 100, + ): + super(Aimbot, self).__init__() + self.env = UnityEnvironment( + file_name=envPath, + seed=1, + side_channels=[], + worker_id=workerID, + base_port=basePort, + ) + self.env.reset() + # all behavior_specs + self.unity_specs = self.env.behavior_specs + # environment behavior name + self.unity_beha_name = list(self.unity_specs)[0] + # environment behavior spec + self.unity_specs = self.unity_specs[self.unity_beha_name] + # environment observation_space + self.unity_obs_specs = self.unity_specs.observation_specs[0] + # environment action specs + self.unity_action_spec = self.unity_specs.action_spec + # environment sample observation + decisionSteps, _ = self.env.get_steps(self.unity_beha_name) + + # OBSERVATION SPECS + # environment state shape. like tuple:(93,) + self.unity_observation_shape = self.unity_obs_specs.shape + + # ACTION SPECS + # environment continuous action number. int + self.unity_continuous_size = self.unity_action_spec.continuous_size + # environment discrete action shapes. list (3,3,2) + self.unity_discrete_branches = self.unity_action_spec.discrete_branches + # environment discrete action type. int 3 + self.unity_discrete_type = self.unity_action_spec.discrete_size + # environment discrete action type. int 3+3+2=8 + self.unity_discrete_size = sum(self.unity_discrete_branches) + + # AGENT SPECS + # all agents ID + self.unity_agent_IDS = decisionSteps.agent_id + # agents number + self.unity_agent_num = len(self.unity_agent_IDS) + + def reset(self): + """reset enviroment and get observations + + Returns: + ndarray: nextState, reward, done, loadDir, saveNow + """ + # reset env + self.env.reset() + nextState, reward, done = self.getSteps() + return nextState, reward, done + + # TODO: + # delete all stack state DONE + # getstep State disassembly function DONE + # delete agent selection function DONE + # self.step action wrapper function DONE + def step( + self, + actions: ndarray, + ): + """change ations list to ActionTuple then send it to enviroment + + Args: + actions (ndarray): PPO chooseAction output action list.(agentNum,actionNum) + + Returns: + ndarray: nextState, reward, done + """ + # take action to enviroment + # return mextState,reward,done + if self.unity_discrete_size == 0: + # create empty discrete action + discreteActions = np.asarray([[0]]) + else: + # create discrete action from actions list + discreteActions = actions[:, 0 : self.unity_discrete_size] + """ + if self.unity_continuous_size == 0: + # create empty continuous action + continuousActions = np.asanyarray([[0.0]]) + else: + # create continuous actions from actions list + continuousActions = actions[:,self.unity_discrete_size :] + """ + continuousActions = np.asanyarray([[0.0], [0.0], [0.0], [0.0]]) + # create actionTuple + thisActionTuple = ActionTuple(continuous=continuousActions, discrete=discreteActions) + # take action to env + self.env.set_actions(behavior_name=self.unity_beha_name, action=thisActionTuple) + self.env.step() + # get nextState & reward & done after this action + nextStates, rewards, dones = self.getSteps() + return nextStates, rewards, dones + + def getSteps(self): + """get enviroment now observations. + Include State, Reward, Done + + Args: + + Returns: + ndarray: nextState, reward, done + """ + # get nextState & reward & done + decisionSteps, terminalSteps = self.env.get_steps(self.unity_beha_name) + nextStates = [] + dones = [] + rewards = [] + for thisAgentID in self.unity_agent_IDS: + # while Episode over agentID will both in decisionSteps and terminalSteps. + # avoid redundant state and reward, + # use agentExist toggle to check if agent is already exist. + agentExist = False + # game done + if thisAgentID in terminalSteps: + nextStates.append(terminalSteps[thisAgentID].obs[0]) + dones.append(True) + rewards.append(terminalSteps[thisAgentID].reward) + agentExist = True + # game not over yet and agent not in terminalSteps + if (thisAgentID in decisionSteps) and (not agentExist): + nextStates.append(decisionSteps[thisAgentID].obs[0]) + dones.append(False) + rewards.append(decisionSteps[thisAgentID].reward) + + return np.asarray(nextStates), rewards, dones + + def close(self): + self.env.close() diff --git a/Aimbot-PPO-Python/Pytorch/ppo.py b/Aimbot-PPO-Python/Pytorch/ppo.py new file mode 100644 index 0000000..597327e --- /dev/null +++ b/Aimbot-PPO-Python/Pytorch/ppo.py @@ -0,0 +1,291 @@ +import argparse +import time +import numpy as np +import random +import torch +import torch.nn as nn +import torch.optim as optim + +from AimbotEnv import Aimbot +from torch.distributions.normal import Normal +from torch.distributions.categorical import Categorical +from distutils.util import strtobool +from torch.utils.tensorboard import SummaryWriter + +DEFAULT_SEED = 9331 +ENV_PATH = "../Build-ParallelEnv/Aimbot-ParallelEnv" +WORKER_ID = 1 +BASE_PORT = 2002 + + +LEARNING_RATE = 2e-3 +GAMMA = 0.99 +GAE_LAMBDA = 0.95 +TOTAL_STEPS = 2000000 +STEP_NUM = 128 +MINIBATCH_NUM = 4 +EPOCHS = 4 +CLIP_COEF = 0.1 +ENTROPY_COEF = 0.01 +CRITIC_COEF = 0.5 + +ANNEAL_LEARNING_RATE = True +CLIP_VLOSS = True +NORM_ADV = True + + +def parse_args(): + # fmt: off + parser = argparse.ArgumentParser() + parser.add_argument("--seed", type=int, default=DEFAULT_SEED, + help="seed of the experiment") + parser.add_argument("--path", type=str, default=ENV_PATH, + help="enviroment path") + parser.add_argument("--workerID", type=int, default=WORKER_ID, + help="unity worker ID") + parser.add_argument("--baseport", type=int, default=BASE_PORT, + help="port to connect to Unity environment") + parser.add_argument("--lr", type=float, default=LEARNING_RATE, + help="the learning rate of optimizer") + parser.add_argument("--cuda", type=lambda x: bool(strtobool(x)), default=True, nargs="?", const=True, + help="if toggled, cuda will be enabled by default") + parser.add_argument("--total-timesteps", type=int, default=TOTAL_STEPS, + help="total timesteps of the experiments") + + parser.add_argument("--stepNum", type=int, default=STEP_NUM, + help="the number of steps to run in each environment per policy rollout") + parser.add_argument("--minibatchesNum", type=int, default=MINIBATCH_NUM, + help="the number of mini-batches") + parser.add_argument("--epochs", type=int, default=EPOCHS, + help="the K epochs to update the policy") + parser.add_argument("--annealLR", type=lambda x: bool(strtobool(x)), default=ANNEAL_LEARNING_RATE, nargs="?", const=True, + help="Toggle learning rate annealing for policy and value networks") + # GAE + parser.add_argument("--gae", type=lambda x: bool(strtobool(x)), default=True, nargs="?", const=True, + help="Use GAE for advantage computation") + parser.add_argument("--norm-adv", type=lambda x: bool(strtobool(x)), default=NORM_ADV, nargs="?", const=True, + help="Toggles advantages normalization") + parser.add_argument("--gamma", type=float, default=GAMMA, + help="the discount factor gamma") + parser.add_argument("--gaeLambda", type=float, default=GAE_LAMBDA, + help="the lambda for the general advantage estimation") + parser.add_argument("--clip-coef", type=float, default=CLIP_COEF, + help="the surrogate clipping coefficient") + parser.add_argument("--ent-coef", type=float, default=ENTROPY_COEF, + help="coefficient of the entropy") + parser.add_argument("--critic-coef", type=float, default=CRITIC_COEF, + help="coefficient of the value function") + parser.add_argument("--clip-vloss", type=lambda x: bool(strtobool(x)), default=CLIP_VLOSS, nargs="?", const=True, + help="Toggles whether or not to use a clipped loss for the value function, as per the paper.") + parser.add_argument("--max-grad-norm", type=float, default=0.5, + help="the maximum norm for the gradient clipping") + parser.add_argument("--target-kl", type=float, default=None, + help="the target KL divergence threshold") + # fmt: on + args = parser.parse_args() + return args + + +def layer_init(layer, std=np.sqrt(2), bias_const=0.0): + torch.nn.init.orthogonal_(layer.weight, std) + torch.nn.init.constant_(layer.bias, bias_const) + return layer + + +class PPOAgent(nn.Module): + def __init__(self, env: Aimbot): + super(PPOAgent, self).__init__() + self.discrete_size = env.unity_discrete_size + self.discrete_shape = list(env.unity_discrete_branches) + + self.network = nn.Sequential( + layer_init(nn.Linear(np.array(env.unity_observation_shape).prod(), 128)), + nn.Tanh(), + layer_init(nn.Linear(128, 128)), + nn.ReLU(), + layer_init(nn.Linear(128, 128)), + nn.ReLU(), + ) + self.dis_Actor = layer_init(nn.Linear(128, self.discrete_size), std=0.01) + self.critic = layer_init(nn.Linear(128, 1), std=1) + + def get_value(self, state: torch.Tensor): + return self.critic(self.network(state)) + + def get_actions_value(self, state: torch.Tensor, actions=None): + hidden = self.network(state) + dis_logits = self.dis_Actor(hidden) + split_logits = torch.split(dis_logits, self.discrete_shape, dim=1) + multi_categoricals = [Categorical(logits=thisLogits) for thisLogits in split_logits] + if actions is None: + actions = torch.stack([ctgr.sample() for ctgr in multi_categoricals]) + log_prob = torch.stack( + [ctgr.log_prob(act) for act, ctgr in zip(actions, multi_categoricals)] + ) + entropy = torch.stack([ctgr.entropy() for ctgr in multi_categoricals]) + return actions.T, log_prob.sum(0), entropy.sum(0), self.critic(hidden) + + +if __name__ == "__main__": + args = parse_args() + random.seed(args.seed) + np.random.seed(args.seed) + torch.manual_seed(args.seed) + + device = torch.device("cuda" if torch.cuda.is_available() and args.cuda else "cpu") + + # Initialize environment anget optimizer + env = Aimbot(envPath=args.path, workerID=args.workerID, basePort=args.baseport) + agent = PPOAgent(env).to(device) + optimizer = optim.Adam(agent.parameters(), lr=args.lr, eps=1e-5) + + # Memory Record + obs = torch.zeros((args.stepNum, env.unity_agent_num) + env.unity_observation_shape).to(device) + actions = torch.zeros((args.stepNum, env.unity_agent_num) + (env.unity_discrete_type,)).to( + device + ) + logprobs = torch.zeros((args.stepNum, env.unity_agent_num)).to(device) + rewards = torch.zeros((args.stepNum, env.unity_agent_num)).to(device) + dones = torch.zeros((args.stepNum, env.unity_agent_num)).to(device) + values = torch.zeros((args.stepNum, env.unity_agent_num)).to(device) + + # TRY NOT TO MODIFY: start the game + args.batch_size = int(env.unity_agent_num * args.stepNum) + args.minibatch_size = int(args.batch_size // args.minibatchesNum) + total_update_step = args.total_timesteps // args.batch_size + global_step = 0 + start_time = time.time() + next_obs, _, _ = env.reset() + next_obs = torch.Tensor(next_obs).to(device) + next_done = torch.zeros(env.unity_agent_num).to(device) + + for total_steps in range(total_update_step): + # discunt learning rate, while step == total_update_step lr will be 0 + if args.annealLR: + frac = 1.0 - (total_steps - 1.0) / total_update_step + lrnow = frac * args.lr + optimizer.param_groups[0]["lr"] = lrnow + + # MAIN LOOP: run agent in environment + for step in range(args.stepNum): + print(step) + global_step += 1 * env.unity_agent_num + obs[step] = next_obs + dones[step] = next_done + + with torch.no_grad(): + # predict actions + action, logprob, _, value = agent.get_actions_value(next_obs) + value = value.flatten() + next_obs, reward, done = env.step(action.cpu().numpy()) + + # save memories + actions[step] = action + logprobs[step] = logprob + values[step] = value + rewards[step] = torch.tensor(reward).to(device).view(-1) + next_obs, next_done = torch.Tensor(next_obs).to(device), torch.Tensor(done).to(device) + + # GAE + with torch.no_grad(): + next_value = agent.get_value(next_obs).reshape(1, -1) + if args.gae: + advantages = torch.zeros_like(rewards).to(device) + lastgaelam = 0 + for t in reversed(range(args.stepNum)): + if t == args.stepNum - 1: + nextnonterminal = 1.0 - next_done + nextvalues = next_value + else: + nextnonterminal = 1.0 - dones[t + 1] + nextvalues = values[t + 1] + delta = rewards[t] + args.gamma * nextvalues * nextnonterminal - values[t] + advantages[t] = lastgaelam = ( + delta + args.gamma * args.gaeLambda * nextnonterminal * lastgaelam + ) + returns = advantages + values + else: + returns = torch.zeros_like(rewards).to(device) + for t in reversed(range(args.stepNum)): + if t == args.stepNum - 1: + nextnonterminal = 1.0 - next_done + next_return = next_value + else: + nextnonterminal = 1.0 - dones[t + 1] + next_return = returns[t + 1] + returns[t] = rewards[t] + args.gamma * nextnonterminal * next_return + advantages = returns - values + + # flatten the batch + b_obs = obs.reshape((-1,) + env.unity_observation_shape) + b_logprobs = logprobs.reshape(-1) + b_actions = actions.reshape((-1,) + (env.unity_discrete_type,)) + b_advantages = advantages.reshape(-1) + b_returns = returns.reshape(-1) + b_values = values.reshape(-1) + + # Optimizing the policy and value network + b_inds = np.arange(args.batch_size) + clipfracs = [] + for epoch in range(args.epochs): + # shuffle all datasets + np.random.shuffle(b_inds) + for start in range(0, args.batch_size, args.minibatch_size): + end = start + args.minibatch_size + mb_inds = b_inds[start:end] + mb_advantages = b_advantages[mb_inds] + + # normalize advantages + if args.norm_adv: + mb_advantages = (mb_advantages - mb_advantages.mean()) / ( + mb_advantages.std() + 1e-8 + ) + + # ratio + _, newlogprob, entropy, newvalue = agent.get_actions_value( + b_obs[mb_inds], b_actions.long()[mb_inds].T + ) + logratio = newlogprob - b_logprobs[mb_inds] + ratio = logratio.exp() + + # early stop + with torch.no_grad(): + # calculate approx_kl http://joschu.net/blog/kl-approx.html + old_approx_kl = (-logratio).mean() + approx_kl = ((ratio - 1) - logratio).mean() + clipfracs += [((ratio - 1.0).abs() > args.clip_coef).float().mean().item()] + + # Policy loss + pg_loss1 = -mb_advantages * ratio + pg_loss2 = -mb_advantages * torch.clamp( + ratio, 1 - args.clip_coef, 1 + args.clip_coef + ) + pg_loss = torch.max(pg_loss1, pg_loss2).mean() + + # Value loss + newvalue = newvalue.view(-1) + if args.clip_vloss: + v_loss_unclipped = (newvalue - b_returns[mb_inds]) ** 2 + v_clipped = b_values[mb_inds] + torch.clamp( + newvalue - b_values[mb_inds], + -args.clip_coef, + args.clip_coef, + ) + v_loss_clipped = (v_clipped - b_returns[mb_inds]) ** 2 + v_loss_max = torch.max(v_loss_unclipped, v_loss_clipped) + v_loss = 0.5 * v_loss_max.mean() + else: + v_loss = 0.5 * ((newvalue - b_returns[mb_inds]) ** 2).mean() + + entropy_loss = entropy.mean() + loss = pg_loss - args.ent_coef * entropy_loss + v_loss * args.critic_coef + + optimizer.zero_grad() + loss.backward() + # Clips gradient norm of an iterable of parameters. + nn.utils.clip_grad_norm_(agent.parameters(), args.max_grad_norm) + optimizer.step() + + if args.target_kl is not None: + if approx_kl > args.target_kl: + break diff --git a/Aimbot-PPO-Python/Pytorch/testEnv.py b/Aimbot-PPO-Python/Pytorch/testEnv.py new file mode 100644 index 0000000..371649e --- /dev/null +++ b/Aimbot-PPO-Python/Pytorch/testEnv.py @@ -0,0 +1,7 @@ +from AimbotGym import Aimbot + +ENV_PATH = "../Build-ParallelEnv/Aimbot-ParallelEnv" +WORKER_ID = 1 +BASE_PORT = 2002 + +env = Aimbot(envPath=ENV_PATH,workerID= WORKER_ID,basePort= BASE_PORT) diff --git a/Aimbot-PPO-Python/Pytorch/testarea.ipynb b/Aimbot-PPO-Python/Pytorch/testarea.ipynb new file mode 100644 index 0000000..7b273ec --- /dev/null +++ b/Aimbot-PPO-Python/Pytorch/testarea.ipynb @@ -0,0 +1,453 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Action, 1 continuous ctrl 2.1\n", + "Action, 0 continuous ctrl -1.1\n" + ] + } + ], + "source": [ + "import gym\n", + "from gym.spaces import Dict, Discrete, Box, Tuple\n", + "import numpy as np\n", + "\n", + "\n", + "class SampleGym(gym.Env):\n", + " def __init__(self, config={}):\n", + " self.config = config\n", + " self.action_space = Tuple((Discrete(2), Box(-10, 10, (2,))))\n", + " self.observation_space = Box(-10, 10, (2, 2))\n", + " self.p_done = config.get(\"p_done\", 0.1)\n", + "\n", + " def reset(self):\n", + " return self.observation_space.sample()\n", + "\n", + " def step(self, action):\n", + " chosen_action = action[0]\n", + " cnt_control = action[1][chosen_action]\n", + "\n", + " if chosen_action == 0:\n", + " reward = cnt_control\n", + " else:\n", + " reward = -cnt_control - 1\n", + "\n", + " print(f\"Action, {chosen_action} continuous ctrl {cnt_control}\")\n", + " return (\n", + " self.observation_space.sample(),\n", + " reward,\n", + " bool(np.random.choice([True, False], p=[self.p_done, 1.0 - self.p_done])),\n", + " {},\n", + " )\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " env = SampleGym()\n", + " env.reset()\n", + " env.step((1, [-1, 2.1])) # should say use action 1 with 2.1\n", + " env.step((0, [-1.1, 2.1])) # should say use action 0 with -1.1" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from mlagents_envs.environment import UnityEnvironment\n", + "from gym_unity.envs import UnityToGymWrapper\n", + "import numpy as np\n", + "\n", + "ENV_PATH = \"../Build-ParallelEnv/Aimbot-ParallelEnv\"\n", + "WORKER_ID = 1\n", + "BASE_PORT = 2002\n", + "\n", + "env = UnityEnvironment(\n", + " file_name=ENV_PATH,\n", + " seed=1,\n", + " side_channels=[],\n", + " worker_id=WORKER_ID,\n", + " base_port=BASE_PORT,\n", + ")\n", + "\n", + "trackedAgent = 0\n", + "env.reset()\n", + "BEHA_SPECS = env.behavior_specs\n", + "BEHA_NAME = list(BEHA_SPECS)[0]\n", + "SPEC = BEHA_SPECS[BEHA_NAME]\n", + "print(SPEC)\n", + "\n", + "decisionSteps, terminalSteps = env.get_steps(BEHA_NAME)\n", + "\n", + "if trackedAgent in decisionSteps: # ゲーム終了していない場合、環境状態がdecision_stepsに保存される\n", + " nextState = decisionSteps[trackedAgent].obs[0]\n", + " reward = decisionSteps[trackedAgent].reward\n", + " done = False\n", + "if trackedAgent in terminalSteps: # ゲーム終了した場合、環境状態がterminal_stepsに保存される\n", + " nextState = terminalSteps[trackedAgent].obs[0]\n", + " reward = terminalSteps[trackedAgent].reward\n", + " done = True\n", + "print(decisionSteps.agent_id)\n", + "print(terminalSteps)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "decisionSteps.agent_id [1 2 5 7]\n", + "decisionSteps.agent_id_to_index {1: 0, 2: 1, 5: 2, 7: 3}\n", + "decisionSteps.reward [0. 0. 0. 0.]\n", + "decisionSteps.action_mask [array([[False, False, False],\n", + " [False, False, False],\n", + " [False, False, False],\n", + " [False, False, False]]), array([[False, False, False],\n", + " [False, False, False],\n", + " [False, False, False],\n", + " [False, False, False]]), array([[False, False],\n", + " [False, False],\n", + " [False, False],\n", + " [False, False]])]\n", + "decisionSteps.obs [ 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. -15.994009 1. -26.322788 1.\n", + " 1. 1. 1. 1. 1. 2.\n", + " 1. 1. 1. 1. 1. 1.\n", + " 1. 1.3519633 1.6946528 2.3051548 3.673389 9.067246\n", + " 17.521473 21.727095 22.753294 24.167128 25.905216 18.35725\n", + " 21.02278 21.053417 0. ]\n" + ] + }, + { + "data": { + "text/plain": [ + "'decisionSteps.obs [array([[-15.994009 , 1. , -26.322788 , 1. , 1. ,\\n 1. , 1. , 1. , 1. , 2. ,\\n 1. , 1. , 1. , 1. , 1. ,\\n 1. , 1. , 1.3519633, 1.6946528, 2.3051548,\\n 3.673389 , 9.067246 , 17.521473 , 21.727095 , 22.753294 ,\\n 24.167128 , 25.905216 , 18.35725 , 21.02278 , 21.053417 ,\\n 0. ],\\n [ -1.8809433, 1. , -25.66834 , 1. , 2. ,\\n 1. , 1. , 1. , 1. , 1. ,\\n 1. , 1. , 1. , 1. , 1. ,\\n 1. , 1. , 16.768637 , 23.414627 , 22.04486 ,\\n 21.050663 , 20.486784 , 20.486784 , 21.050665 , 15.049731 ,\\n 11.578419 , 9.695194 , 20.398016 , 20.368341 , 20.398016 ,\\n...\\n 20.551746 , 20.00118 , 20.001116 , 20.551594 , 21.5222 ,\\n 17.707508 , 14.86889 , 19.914494 , 19.885508 , 19.914463 ,\\n 0. ]], dtype=float32)]'" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(\"decisionSteps.agent_id\",decisionSteps.agent_id)\n", + "# decisionSteps.agent_id [1 2 5 7]\n", + "print(\"decisionSteps.agent_id_to_index\",decisionSteps.agent_id_to_index)\n", + "# decisionSteps.agent_id_to_index {1: 0, 2: 1, 5: 2, 7: 3}\n", + "print(\"decisionSteps.reward\",decisionSteps.reward)\n", + "# decisionSteps.reward [0. 0. 0. 0.]\n", + "print(\"decisionSteps.action_mask\",decisionSteps.action_mask)\n", + "'''\n", + "decisionSteps.action_mask [array([[False, False, False],\n", + " [False, False, False],\n", + " [False, False, False],\n", + " [False, False, False]]), array([[False, False, False],\n", + " [False, False, False],\n", + " [False, False, False],\n", + " [False, False, False]]), array([[False, False],\n", + " [False, False],\n", + " [False, False],\n", + " [False, False]])]\n", + "'''\n", + "print(\"decisionSteps.obs\", decisionSteps.obs[0][0])\n", + "'''decisionSteps.obs [array([[-15.994009 , 1. , -26.322788 , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 2. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1.3519633, 1.6946528, 2.3051548,\n", + " 3.673389 , 9.067246 , 17.521473 , 21.727095 , 22.753294 ,\n", + " 24.167128 , 25.905216 , 18.35725 , 21.02278 , 21.053417 ,\n", + " 0. ],\n", + " [ -1.8809433, 1. , -25.66834 , 1. , 2. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 16.768637 , 23.414627 , 22.04486 ,\n", + " 21.050663 , 20.486784 , 20.486784 , 21.050665 , 15.049731 ,\n", + " 11.578419 , 9.695194 , 20.398016 , 20.368341 , 20.398016 ,\n", + "...\n", + " 20.551746 , 20.00118 , 20.001116 , 20.551594 , 21.5222 ,\n", + " 17.707508 , 14.86889 , 19.914494 , 19.885508 , 19.914463 ,\n", + " 0. ]], dtype=float32)]'''\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from AimbotEnv import Aimbot\n", + "\n", + "ENV_PATH = \"../Build-ParallelEnv/Aimbot-ParallelEnv\"\n", + "WORKER_ID = 1\n", + "BASE_PORT = 2002\n", + "\n", + "env = Aimbot(envPath=ENV_PATH,workerID= WORKER_ID,basePort= BASE_PORT)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([[ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -15.994009 , 1. , -26.322788 , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 2. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1.3519633, 1.6946528,\n", + " 2.3051548, 3.673389 , 9.067246 , 17.521473 , 21.727095 ,\n", + " 22.753294 , 24.167128 , 25.905216 , 18.35725 , 21.02278 ,\n", + " 21.053417 , 0. , -15.994003 , 1. , -26.322784 ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1.3519667,\n", + " 1.6946585, 2.3051722, 3.6734192, 9.067533 , 21.145092 ,\n", + " 21.727148 , 22.753365 , 24.167217 , 25.905317 , 18.358263 ,\n", + " 21.022812 , 21.053455 , 0. ],\n", + " [ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -1.8809433, 1. , -25.66834 , 1. ,\n", + " 2. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 16.768637 , 23.414627 ,\n", + " 22.04486 , 21.050663 , 20.486784 , 20.486784 , 21.050665 ,\n", + " 15.049731 , 11.578419 , 9.695194 , 20.398016 , 20.368341 ,\n", + " 20.398016 , 0. , -1.8809433, 1. , -25.66834 ,\n", + " 1. , 1. , 2. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 2. ,\n", + " 2. , 1. , 1. , 1. , 25.098585 ,\n", + " 15.749494 , 22.044899 , 21.050697 , 20.486813 , 20.486813 ,\n", + " 21.050694 , 15.049746 , 3.872317 , 3.789325 , 20.398046 ,\n", + " 20.368372 , 20.398046 , 0. ],\n", + " [ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -13.672583 , 1. , -26.479263 , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 5.3249803, 6.401276 ,\n", + " 8.374101 , 12.8657875, 21.302414 , 21.30242 , 21.888742 ,\n", + " 22.92251 , 24.346794 , 26.09773 , 21.210114 , 21.179258 ,\n", + " 21.210117 , 0. , -13.672583 , 1. , -26.479263 ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 2. , 1. , 1. ,\n", + " 2. , 1. , 1. , 2. , 5.3249855,\n", + " 6.4012837, 8.374114 , 12.865807 , 21.302446 , 21.30245 ,\n", + " 16.168503 , 22.922543 , 24.346823 , 7.1110754, 21.210148 ,\n", + " 21.17929 , 12.495141 , 0. ],\n", + " [ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -4.9038744, 1. , -25.185507 , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 20.33171 , 22.859762 ,\n", + " 21.522427 , 20.551746 , 20.00118 , 20.001116 , 20.551594 ,\n", + " 21.5222 , 17.707508 , 14.86889 , 19.914494 , 19.885508 ,\n", + " 19.914463 , 0. , -4.9038773, 1. , -25.185507 ,\n", + " 1. , 2. , 1. , 2. , 1. ,\n", + " 1. , 1. , 1. , 2. , 1. ,\n", + " 1. , 1. , 1. , 1. , 15.905993 ,\n", + " 22.85977 , 11.566693 , 20.551773 , 20.00121 , 20.001146 ,\n", + " 20.551619 , 7.135157 , 17.707582 , 14.868943 , 19.914528 ,\n", + " 19.88554 , 19.914494 , 0. ]], dtype=float32),\n", + " [[-0.05], [-0.05], [-0.05], [-0.05]],\n", + " [[False], [False], [False], [False]])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "env.unity_observation_shape\n", + "(128, 4) + env.unity_observation_shape\n", + "env.reset()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0 0 0 0]\n", + " [0 0 0 0]\n", + " [0 0 0 0]\n", + " [0 0 0 0]]\n", + "[[0]\n", + " [0]\n", + " [0]\n", + " [0]]\n", + "[[0 0 0]\n", + " [0 0 0]\n", + " [0 0 0]\n", + " [0 0 0]]\n" + ] + }, + { + "data": { + "text/plain": [ + "([array([ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -15.994009 , 1. , -26.322788 , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 2. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1.3519633, 1.6946528,\n", + " 2.3051548, 3.673389 , 9.067246 , 17.521473 , 21.727095 ,\n", + " 22.753294 , 24.167128 , 25.905216 , 18.35725 , 21.02278 ,\n", + " 21.053417 , 0. , -15.994003 , 1. , -26.322784 ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 2. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1.3519667,\n", + " 1.6946585, 2.3051722, 3.6734192, 9.067533 , 17.521563 ,\n", + " 21.727148 , 22.753365 , 24.167217 , 25.905317 , 18.358263 ,\n", + " 21.022812 , 21.053455 , 0. ], dtype=float32),\n", + " array([ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -1.8809433, 1. , -25.66834 , 1. ,\n", + " 2. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 16.768637 , 23.414627 ,\n", + " 22.04486 , 21.050663 , 20.486784 , 20.486784 , 21.050665 ,\n", + " 15.049731 , 11.578419 , 9.695194 , 20.398016 , 20.368341 ,\n", + " 20.398016 , 0. , -1.8809433, 1. , -25.66834 ,\n", + " 1. , 2. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 16.768671 ,\n", + " 23.414669 , 22.044899 , 21.050697 , 20.486813 , 20.486813 ,\n", + " 21.050694 , 15.049746 , 11.578423 , 9.695195 , 20.398046 ,\n", + " 20.368372 , 20.398046 , 0. ], dtype=float32),\n", + " array([ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -13.672583 , 1. , -26.479263 , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 5.3249803, 6.401276 ,\n", + " 8.374101 , 12.8657875, 21.302414 , 21.30242 , 21.888742 ,\n", + " 22.92251 , 24.346794 , 26.09773 , 21.210114 , 21.179258 ,\n", + " 21.210117 , 0. , -13.672583 , 1. , -26.479263 ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 5.3249855,\n", + " 6.4012837, 8.374114 , 12.865807 , 21.302446 , 21.30245 ,\n", + " 21.888773 , 22.922543 , 24.346823 , 26.097757 , 21.210148 ,\n", + " 21.17929 , 21.21015 , 0. ], dtype=float32),\n", + " array([ 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. , 0. ,\n", + " 0. , -4.9038744, 1. , -25.185507 , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 20.33171 , 22.859762 ,\n", + " 21.522427 , 20.551746 , 20.00118 , 20.001116 , 20.551594 ,\n", + " 21.5222 , 17.707508 , 14.86889 , 19.914494 , 19.885508 ,\n", + " 19.914463 , 0. , -4.9038773, 1. , -25.185507 ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 20.331783 ,\n", + " 22.85977 , 21.522448 , 20.551773 , 20.00121 , 20.001146 ,\n", + " 20.551619 , 21.522217 , 17.707582 , 14.868943 , 19.914528 ,\n", + " 19.88554 , 19.914494 , 0. ], dtype=float32)],\n", + " [[-0.05], [-0.05], [-0.05], [-0.05]],\n", + " [[False], [False], [False], [False]])" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "actions = np.zeros_like(np.arange(16).reshape(4, 4))\n", + "print(actions)\n", + "env.step(actions)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.7 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "86e2db13b09bd6be22cb599ea60c1572b9ef36ebeaa27a4c8e961d6df315ac32" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Aimbot-PPO-Python/Tensorflow/GAIL-Main.ipynb b/Aimbot-PPO-Python/Tensorflow/GAIL-Main.ipynb index 0f91fa9..25201bc 100644 --- a/Aimbot-PPO-Python/Tensorflow/GAIL-Main.ipynb +++ b/Aimbot-PPO-Python/Tensorflow/GAIL-Main.ipynb @@ -4,7 +4,16 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\UCUNI\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\requests\\__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.12) or chardet (5.0.0)/charset_normalizer (2.0.6) doesn't match a supported version!\n", + " warnings.warn(\"urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported \"\n" + ] + } + ], "source": [ "import numpy as np\n", "import tensorflow as tf\n", @@ -62,7 +71,7 @@ "self.clipRange = 0.2\n", "self.entropyWeight = 0.005\n", "self.trainEpochs = 5\n", - "self.saveDir = GAIL-Model/1020-0318/\n", + "self.saveDir = GAIL-Model/1027-2240/\n", "self.loadModelDir = None\n", "---------Actor Model Create Success---------\n", "Model: \"model_1\"\n", @@ -126,8 +135,8 @@ } ], "source": [ - "ENV_PATH = \"./Build-CloseEnemyCut/Aimbot-PPO\"\n", - "EXPERT_DIR = \"GAIL-Expert-Data/1015-0148/pack-53518.npz\"\n", + "ENV_PATH = \"../Build-CloseEnemyCut/Aimbot-PPO\"\n", + "EXPERT_DIR = \"../GAIL-Expert-Data/1015-0148/pack-53518.npz\"\n", "WORKER_ID = 1\n", "BASE_PORT = 200\n", "MAX_BUFFER_SIZE = 256\n", @@ -187,27 +196,10 @@ "execution_count": 4, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "20777.3\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABMgAAALyCAYAAAAv/+j+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3xT9ffH8VeSpm3S0j0oG9lbUFBAloACDhw/3AtxIyiKinugIuBEUfwiIop7IChDkS2gqCxBWbKhdC86kjTJ74+2sbUD0LZpm/fz8eBBc3Nzc3Ibyu3JOedjMMS0cSMiIiIiIiIiIuKjjN4OQERERERERERExJuUIBMREREREREREZ+mBJmIiIiIiIiIiPg0JchERERERERERMSnKUEmIiIiIiIiIiI+TQkyERERERERERHxaUqQiYhUkbjYWH76YQkmo37UioiISN3z+AP3c/vIG+nSsQOfzn6n0o+//Jt5NIirX+nHFREpi5+3AxAR+Tcef+B+zju3P478fByOfHbu3s1Lb7zJgUOHvR2aiIiIiE/Zsm07V468pdKPe+5Fl/7rx86bO4fnX36VXzZuqsSIRKQuU1mDiNRacz/7gnMvupSLr7qWpOQUHr1/nNdiUZWYiIiISOXQdZWIeIMqyETklM2bO4cvFnzD0EEDaRgXx9KVq5gxazaPP3g/nTt24I8dO3nkmefIOn6cDu3acs8dt9G8aROOJSTyypsz2LhlKwAXnD+Y668YQXR0FOkZGXzwyed8vXARAN26dOapCQ/wyZfzuO7KK3C5XLz17mwWfre0VDw2u50fVq3m+ccf9WyLiozg/rvv4vROHcnNzeOTL+fx2dfz8Teb+f7rLxh+9fVkZGZy0zVXccuN13PepSPIycnhtptuwGqx8Opbb9PrrB7cPvIGGsXFcTw7h2+WfMc7788FCton5304h+defIVRN1xL/LEERo9/iNG33MwF5w8mOyeHjz7/qkScF5w3mJuvv4aw0FAyMjJ5e/Ycvlu+oqq+TSIiIiKVqnXLFjx6/zgaNWzA+g2/4Ha7gb+v2y6++noArr9yBCMuHU6Q1UpySipTp73Br5s2YzQauf7KEVw09HzCw8I4dPgIDz75NIlJyfz0wxKmTpvOVZddgslk4rLrb+KnH5bwfzeM5PDReB5/4H7ybHk0qF+fLp06suevvUx4+lluuOoKhp03iNS0dJ54/gV27fmrwtdgNpsZfcvNDOzXF4Blq1Yz/Z13cTgchIaE8PiD99OlYwdcLjf7DhzgzvsewO12l/uaDAYD1105guHDhlAvOJhfNm1myqvTyMw6jr/ZzCP3j6NnjzMxGo0cOnKU8Y8+QWp6epV+n0Tk31GCTET+lQF9ejP2wYcxmUzMmTGdNi1b8NxLr7D/wEFefn4iV1w6nAWLlvDyc8/w1AtT+emXX+ne9XQmPfkYV468lfSMDNLSM7j/sSc5Eh9P186deOX5ify5cxc79+wBICIigqCgIC666lp6nNGNSU88yuq168k6frxELIGBAZw3oD+Hjx4FwGAw8OLEp1m9bj2PP/cCMdFRvD5lEgcOH+bnX3/jz5276NalEyvWrKVr504cS0igS4f2rP/lV7p27sQnX84DIC8vj2cmv8je/Qdo0awZ06Y8z649f7F63XrPc3ft0omrbr4Vt8vN8GFD6H32Wdxwx2jy8vKY9OTjJWK8b/QdjBx9DwcPHyYyIoKQevWq+LskIiIiUjn8/PyY/PQTfPrV13z+9QL69urJxEcn8MGnn5fYr0mjRvzf8Iu5efRYklNSiYuNxVhYEXb1/13G4HP7c98jT3Dw8GFantacPJvN89h+vXsyasw92Gz2MmMY2K8v90x4lH37D/Dy8xN5Z9orzHz/A6a9PZNbb7yee+64jdHjH6rwddx0zVV0bN+WG+64C7cbpjzzJCOvvZr/vfc+14y4nMSkZIZcfiUAHdu1xe12V/iaRlxyMf169+TO+x4kPSOD+0bfyfgxd/PE8y8w7LzBBAdZufjq63E4HLRqcRp59rJfm4h4n2pXReRf+XzeAlLT00lKSWHLtm1s37GDXXv+wu5wsGrtOlq3bMGQQeey7udfPJ8wbti4iT937aZXj+4ArPt5A0fi4wHYtPV3fv5tI106dfA8R35+Pu9+8CFOp5P1G34hJzePJo0bee6/ZsTlLP36C5YvmEeXjh14+oWpALRv05qwsFDenfsR+fn5HI0/xvxFSxjcv5/nubp27ozJaKTlac35bN58unbphL/ZTLs2rdn0++8AbNyylb/27cftdrNn3z6+X76Srl06lTgP77w/l7w8Gza7nYH9+vLpV/NITEomM+s4cz7+tMS+LrebFs2bEuDvT0pqKvsOHKjk74qIiIhI1ejYri1+Jj8++XIeTqeTFWt+5I+du0rt53I5MZvNNG/aFJPJRHxCgud67+KhQ3h79hwOHi6YGbtn7z4yM7M8j53z8adkZh3HVk4SadXadezcvcdzvWm321m8dBkul4sfVq6idcsWJ3wd5w8cwKwPPiItPYP0jAxmffAhQwcNBAquPaMiI4iLjcHpdLJl2/YTvqbLLryAGe/OISk5GYfDwTvvz+XcvudgMhrJd+YTEhJC4wYNcLlc7Ny9h5ycnFM46yJSnVRBJiL/SvHScJvNTmpaydtWi4X6sTGc268P5/Q8y3Ofn8mP3zZvAaBn9zMZdcO1NG7YCKPRQGBAAH/t2+/ZNzMzE6fLVey4NqwWi+f2R59/yduz5xAbE82rk56lSeNG7Nm3j/qxMURFRrL06y88+xqNRrb8vg0oSJDdc8dttGnVkr/27WfDb5t4dPw4OrZvx+GjRz0Xah3atuGuW27mtGZNMZvNmM1mlq9aU+I8JCQmeb6OiowkISnZc/tYQqLn67w8G489O4lrR1zOI/ePY+v2P5g2439aVEBERERqhajISJJSUkpsK36tU+Tw0XhefWsGt9xwHc2bNuHnX3/jtRn/IzklldjoKI4cjS/3ORKTksq9Dyh1vVnyetSGpdh1YkWvo3jcxxISiIqMAODDz77glhuu47XJzwPw9cLFfPDJZxW+pvqxMUx+6nFche2mAE6Xi4jwcBYvXUZsdDQTH5tAcFAw3y1bzlvvvofT6TxhnCJS/ZQgE5Eqk5CUzJIfljHp5ddK3Wc2m5n05GM8PflFVq9bj9PpZPLTT2AwGE79eRKTeGX6DB5/cDxrf/qZhMRk4uOPMeKmUWXuv3X7HzRp1JB+5/Rm09bf2X/wILEx0fTq0Z1NW3737Pf0Iw/xxfxvGPfwY9gdDu6983bCQkNLHqzYxVBKasGFX5H6MdEldv3519/4+dffCPD35/aRN/Lwffdyx7jxp/x6RURERKpbSmoq0ZGRJbbVj4n2VFIV9/3ylXy/fCVWq5UJ945l9C2jeHryVBKSkmnYII69+8uuoncXu66qKskpKdSPjfFU8sfGxJCckgpATm4u096eybS3Z3Jas6a8MXUyf+7cxa+bNlf4mp578WW2bv+jzOeb9cGHzPrgQ+JiY3n5+Wc4cOgw3yz5rspfp4icOrVYikiVWfLDMs45+yzOOvMMjEYj/mYz3bp0JjoqCrOfH2azmfSMDJxOJz27n8lZZ3T718+1YeMmklNSGH7BUP7YuZOc3Fyuv3IEAf7+GI1GTmvWlHZtWgMFnzDu2L2H/7v4Qs+CAb9v/5NLLxzGpq1/J8isFiuZmVnYHQ7at2nNeecOqDCGZatWc8Wlw4mOiqJecDDXX3WF576IsDD69DqbwMAA7A4HObm5uIpVx4mIiIjUZL//8SdOl5MrLh2OyWSi/zm9ad+2Tan9mjRqxBmnd8FsNmO327HZbbjcBdc8CxYv4fabbqRxwwYAtGzenJCQqpvJ6mcy4W82e/6YjEaWrljFyGuvJiw0lNCQEEZdfy1Lli0HoPdZPWjUIA6A49nZuFwuXC5Xha9p3rcLuePmm6gfEwNAWGgofXqdDRQsXtCieTOMRiPZOdnk5zs9jxORmkcVZCJSZRKTknnwiacZfesonnlkAi6Xkz927mLKa6+Tk5vLy9Nn8Nzjj2A2m/lx/c+sWf/Tf3q+Dz//grF33Ma8bxdx/2NPMPb22/hq7nuYzWYOHj7M27Pf9+y7aevvtG7ZwjM7Y9PWrQzs14fNxRJkU6e9wdg7buX+MXexaevvLFu1mnrBweU+//yFi2ncqCFz//cm2dk5fPj5l3Tv1hUAg9HI1ZdfxpMPFayEtPuvvUx57Y3/9HpFREREqkt+fj4TnprIw/fdw+0jb2T9hl9Y+ePaUvv5m83cdcvNNGvSmPx8J7//8QcvvFLQTfDxF1/hbzbz2gvPExoawoFDh3noyWeArFLHqQyvTHq2xO3ZH37M7LkfEWS1Mvd/bwGwfPUaZs/9CIDGjRoyfsxowkJDyTqexZcLvmXjlq20bN683Nf06VdfY8DAa5OfJyoygrT0dH5YuZo1634iMiKCh+4dS0xUFLl5ufywcjVLli6rktcqIv+dwRDTpurrWEVERERERERERGootViKiIiIiIiIiIhPU4JMRERERERERER8mhJkIiIiIiIiIiLi05QgExERERERERERn6YEmYiIiIiIiIiI+DQ/bwfwby358lPijyV4OwwRERGpxeLqxzLk8iu9HYacBF37iYiIyH9V0bVfrU2QxR9LYOTosd4OQ0RERGqx2dOneTsEOUm69hMREZH/qqJrP7VYioiIiIiIiIiIT1OCTEREREREREREfJoSZCIiIiIiIiIi4tOUIBMREREREREREZ+mBFkZHn/wfgYP6O/tMERERESkGtwx8kauveL/vB2GiIiIeJESZGUY0Occ2rZq6e0wRERERKQanHXmGXTt3MnbYYiIiIgXKUFWBrvdTkBAgLfDEBEREZFq4HK7MRoM3g5DREREvEgJsjLY7Xb8/f29HYaIiIiIVAO324XBqMtiERERX6YrgTLYbHYC/M3eDkNEREREqoHLpQoyERERX6cEWRlsDjsB/mqxFBEREfEFbrcboyrIREREfJquBMpgtzvwVwWZiIiIiE9wu90YVEEmIiLi05QgK4NmkImIiIj4DpfLpQoyERERH1djrgSu+b/L+OmHJYSGhHg7FGw2m1axFBEREfERbrfb2yGIiIiIl9WIBFlMdBQ9zjyD+IQEb4cCqMVSRERExJeogkxERERqxJXAvXfezhv/ewdqyId3NoedALNaLEVERER8gdutVSxFRER8nZ+3A+jT62ySklPYs3eft0PxsNlsmkEmIiIiUoWCg4J45P57Oa1ZM3C7efbFV9j2559eicXldmNQBZmIiIhPq5YE2etTJhERHl5q+4zZ73HT1VcxdsIjJ3Wc4RcM5ZJhQwEICwut1BiLs9sdBAQoQSYiIiJSVcaNvoOffvmNR555Dj8/PwK9OP/V7XKpgkxERMTHVUuCbMyDD5e5vUXzZsTVr8/ct98CIDo6ijkz3uDm0feQmpZWav/5Cxczf+FiAGZPn1Zl8WoVSxEREZGqExRkpWunTkyc8hIA+fn5HM/P91o8qiATERERr7ZY/rVvP8NGXOW5PW/uHG66awwZmZlejApsdrVYioiIiFSVBvXrk5aRweMP3E/LFs3ZuWsPL7/5Fnl5Nq/EowoyERER0UdlZbDbHQT4+2PQhZKIiIhIpTOZTLRp1ZKvvvmWG++4m9y8PG646spS+w2/YCizp09j9vRpVTpeo6CCTNd9IiIivqxGJcguve5Gr1ePAdjsdgD8zWYvRyIiIiJS9yQmJZOUlMz2HTsBWL56DW1atSy13/yFixk5eiwjR48lPT2jyuJxuVwYDTXqslhERESqma4EymCzFZT3q81SREREpPKlpqWRkJREk0aNAOjerSv7Dhz0WjxuVZCJiIj4PK/OIKup7HYHAAEB/mQd93IwIiIiInXQS2+8ydMPP4jZbOZIfDzPTn3Za7G4XG5VkImIiPg4JcjKYC9qsVQFmYiIiEiV2P3XXkaOHuvtMABwuzWkX0RExNfpo7Iy2B1FM8iUIBMRERGp61wuNwajLotFRER8ma4EymCzFSTIAgKUIBMRERGp61RBJiIiIkqQlaFoFcsAtViKiIiI1HkFFWRKkImIiPgyJcjKoBlkIiIiIr7D5XZpSL+IiIiP05VAGWxKkImIiIj4DLcqyERERHyeEmRlsKvFUkRERMRnuNxuVZCJiIj4OF0JlEEJMhEREREf4lYFmYiIiK9TgqwMeTa1WIqIiIj4Cs0gExEREV0JlMFTQRagBJmIiIhIXedyuTGqgkxERMSnKUFWBq1iKSIiIuI73G4XBoMSZCIiIr5MCbIyeBJkZiXIREREROo6l8utBJmIiIiPU4KsDE6Xi/z8fLVYioiIiPgAt9uNQTPIREREfJquBMphs9u1iqWIiIiID3C5XJpBJiIi4uOUICuH3W7H39/s7TBEREREpIq53W6MarEUERHxaUqQlcNmt2tIv4iIiIgPcLlcGIy6LBYREfFluhIoh91uJ8A/wNthiIiIiEgVUwWZiIiIKEFWDrvdoRZLERERER/gcquCTERExNf5eTsAgBGXXMzlF1+Ey+Vi3c8beGPmLG+HhM1m05B+ERERER/gcqmCTERExNd5PUHWrUtn+vbqyfW334XD4SA8LNTbIQGFq1gGqMVSREREpK5zu92qIBMREfFxXr8SuOziC3n/k89wOBwApKVneDmiAnaHWixFREREfIHL5VIFmYiIiI/zeoKsScOGdOnYgVmvv8qbL02hXZvW3g4JKGix9DerxVJERESkrnO73RhVQSYiIuLTqqXF8vUpk4gIDy+1fcbs9zCZTISG1GPUmHtp36Y1zz32CJddf1OZxxl+wVAuGTYUgLAqbsW0q8VSRERExCe4XC4ADAYDbrfby9GIiIiIN1RLgmzMgw+Xe99lF13IijVrAfhj5y5cbhdhoaGkZ5RutZy/cDHzFy4GYPb0aVUTbCGtYikiIiLiG4qSYkaDAacSZCIiIj7J67Xkq9eu44zTuwDQuGFDzH7mMpNj1c1m1yqWIiIiIr7AU0GmNksRERGf5fVVLL9Z8j2Pjb+PD2fOID8/n2emvOjtkIDCVSyVIBMRERGp81zFKshERETEN3k9QZafn89TL0zxdhilFLRYKkEmIiIiUte5VUEmIiLi83QVUA673Y7ZbNaKRiIiIiJ1nCrIRERERNmfcthsNgDMZg3qFxEREanTChNkqiATERHxXboKKIfd7gAgIEBtliIiIiJ1mSrIRERERAmyctgcdgACzEqQiYiIiNRlRatYGo1KkImIiPgqJcjKYbMVJMg0qF9ERESkbnMXtVgadGksIiLiq3QVUA67vbCCTC2WIiIiInWay1XYYqkKMhEREZ+lBFk5ihJkqiATERERqdvc7oIWSwNKkImIiPgqJcjKYSuqIFOCTERERKRKGI1G5sx4gxeffdqrcRRVkGkVSxEREd+lq4By2JUgExEREalSV156CfsPHvJ2GJ4KMq1iKSIi4ruUICuHTS2WIiIiIlUmOiqKXmd1Z8GiJd4OpVgFmRJkIiIivkoJsnJoBpmIiIhI1Rl31+28MXOWZwVJb3J5Ksh0aSwiIuKr/LwdQE1ls2kVSxEREZGq0PusHqSlp7Nz9x66delc7n7DLxjKJcOGAhAWFlpl8bhVQSYiIuLzlCArhyrIRERERKpG544d6NPzbHr16IG/v5kgq5WnJjzIUy9MKbHf/IWLmb9wMQCzp0+rsnhchVVsqiATERHxXUqQlcPmKKwgMytBJiIiIlKZ3po1m7dmzQagW5fOXDPi8lLJserkdhW2WKqCTERExGfpY7JyFLVY+vubvRyJiIiIiFSlogoygyrIREREfJYqyMrhcDgACAgI8HIkIiIiInXXxi1b2bhlq1djcLtVQSYiIuLr9DFZOVwuFw6HQzPIREREROo4l0sVZCIiIr5OVwEVsNntarEUERERqeNUQSYiIiJKkFXAbrcT4K8WSxEREZG67O8KMiXIREREfJUSZBWw2e0EqMVSREREpE5zeSrIdGksIiLiq3QVUAGbTS2WIiIiInWdWxVkIiIiPs/rq1i2anEaD907Bn+zP06nk6nT3uCPnbu8HRZQ2GKpVSxFRERE6jSXuyBBpgoyERER3+X1q4C7bx3FrPc/5IY7RvO/OR9w9223eDskD7vDrlUsRUREROo4d1GCTBVkIiIiPsvrCTI3EBRkBSA4KIiklBTvBlSM3e7A36wWSxEREZG6rGgVS4PB65fGIiIi4iVeb7F89c0ZvPrCc4y57VYMRgO3jb3P2yF52Gw2QurV83YYIiIiIlKFilaxNBpVQSYiIuKrqiVB9vqUSUSEh5faPmP2e3Tv2pXX3nqbFWvWMrBfHx4dP44xDz5c5nGGXzCUS4YNBSAsLLRKY4bCVSw1g0xERESkTitqsdSQfhEREd9VLQmy8hJeAE8+9AAvT38LgGWr1vDIffeWu+/8hYuZv3AxALOnT6vUGMtitzu0iqWIiIhIHedyFbRYaki/iIiI7/L6VUBycgrdunQG4Myup3PoyFEvR/Q3m92mIf0iIiIidZwqyERERMTrM8gmvfIa4+66A5PJhN1uZ9Irr3k7JA+73U6AEmQiIiIidVpRBZkSZCIiIr7L6wmyLdu2c9NdY7wdRpkKWiyVIBMRERGpy4oqyNRiKSIi4rt0FVABm82mCjIRERGROk4VZCIiIqIEWQVsdgd+fn6Y9GmiiIiISJ3l8lSQKUEmIiLiq5T5qYDdYQdQm6WIiIhIHeb2VJDp0lhERMRX6SqgAjabDVCCTERERKQu81SQqcVSRETEZylBVgG73QFAQIASZCIiIiJ1ldulIf0iIiK+TlcBFbDbC1osNahfREREpO5yuTWkX0RExNcpQVYBm10zyERERETqOlWQiYiIiK4CKqAEmYiIiEjdpwoyERERUYKsAmqxFBEREan7XJ4KMiXIREREfJUSZBWwq4JMREREpM5zeyrIdGksIiLiq3QVUAGbTRVkIiIiInWdKshERERECbIKFM0gCwhQgkxERESkriqqIDOqgkxERMRn6SqgAnZHYYulWQkyERERkbrK5S6oIDOogkxERMRnKUFWgaIWS80gExEREam73IUJMlWQiYiI+C5dBVTArhZLERERkTrP7VIFmYiIiK9TgqwCWsVSREREpO5zaQaZiIiIz9NVQAXsDgegVSxFRERE6jJVkImIiIgSZBVwu93Y7HYlyERERETqMJdnBpkSZCIiIr5KCbITsNvtarEUERERqcPcrsIWS6MujUVERHyVn7cDqOmUIBMRERGpXDHRUTz50ANEhIfhdsPXCxfx2bz5XounqILMoAoyERERn1VtCbJz+/bhlhuuo1mTxtx89z3s2LXbc98NV1/JRUPOx+Vy8fL0t/j519+qK6wTstns+PubvR2GiIiISJ3hdLqYNmMmO/fswWqx8N5br7Pht03sP3jQK/EUDelXgkxERMR3VVsd+d79+5nw1EQ2/76txPZmTZowuH8/rrnldu59+FEeGDu6RpW32+12AgICvB2GiIiISJ2RkprKzj17AMjJzWX/wUPEREV6LR7PkH4lyERE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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "61b563af512640828f05fb04f9795a5b", + "model_id": "d1f8428c32f04f8da4a43a905fd9481c", "version_major": 2, "version_minor": 0 }, @@ -217,6 +209,17 @@ }, "metadata": {}, "output_type": "display_data" + }, + { + "ename": "ValueError", + "evalue": "not enough values to unpack (expected 5, got 2)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_2500\\815726880.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 33\u001b[0m \u001b[0mdiscrimRewards\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgail\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minference\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0magentStates\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0magentActions\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m*\u001b[0m \u001b[1;36m10.0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 34\u001b[0m \u001b[1;31m# train agentPPO\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 35\u001b[1;33m actorLosses, criticLosses, averageEntropy, discreteEntropys, continuousEntropys = gail.trainPPO(\n\u001b[0m\u001b[0;32m 36\u001b[0m \u001b[0magentStates\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0magentActorProbs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0magentActions\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdiscrimRewards\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0magentDones\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnextState\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 37\u001b[0m )\n", + "\u001b[1;31mValueError\u001b[0m: not enough values to unpack (expected 5, got 2)" + ] } ], "source": [ @@ -254,7 +257,7 @@ " # get disriminator predict rewards\n", " discrimRewards = gail.inference(agentStates, agentActions) * 10.0\n", " # train agentPPO\n", - " actorLosses, criticLosses, averageEntropy, discreteEntropys, continuousEntropys = gail.trainPPO(\n", + " actorLosses, criticLosses, averageEntropy = gail.trainPPO(\n", " agentStates, agentActorProbs, agentActions, discrimRewards, agentDones, nextState\n", " )\n", " gailHis.saveHis(\n",