Aimbot-PPO/Aimbot-PPO-Python/Tensorflow/PPO-mian.ipynb
Koha9 742529ccd7 Archive all tensorflow agents and env
archive all TF py&ipynb
turn face to pytorch.
2022-10-26 03:15:37 +09:00

324 lines
82 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import aimBotEnv\n",
"import PPO\n",
"import numpy as np\n",
"\n",
"import tensorflow as tf\n",
"import time\n",
"import datetime\n",
"\n",
"from PPO import PPO\n",
"from PPOBuffer import PPOBuffer\n",
"from PPOConfig import PPOConfig\n",
"from PPOHistoryRecorder import PPOHistory\n",
"from IPython.display import clear_output"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Attempts to allocate only the GPU memory needed for allocation\n",
"physical_devices = tf.config.list_physical_devices(\"GPU\")\n",
"tf.config.experimental.set_memory_growth(physical_devices[0], True)\n",
"tf.random.set_seed(9331)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Env\n",
"ENV_PATH = \"./Build-CloseEnemyCut/Aimbot-PPO\"\n",
"WORKER_ID = 1\n",
"BASE_PORT = 200\n",
"\n",
"MAX_EP = 1000\n",
"EP_LENGTH = 100000\n",
"BATCH = 256 # learning step\n",
"ACTION_INTERVAL = 1 # take action every ACTION_INTERVAL steps\n",
"\n",
"\n",
"TRAIN = True\n",
"SAVE_DIR = \"PPO-Model/\" + datetime.datetime.now().strftime(\"%m%d%H%M\") + \"/\"\n",
"LOAD_DIR = None\n",
"\n",
"CTN_ACTION_RANGE = 10\n",
"\n",
"ppoConfig = PPOConfig(\n",
" NNShape=[512, 512],\n",
" actorLR=2e-3,\n",
" criticLR=2e-3,\n",
" gamma=0.99,\n",
" lmbda=0.95,\n",
" clipRange=0.20,\n",
" entropyWeight=1e-2,\n",
" trainEpochs=5,\n",
" saveDir=\"PPO-Model/\" + datetime.datetime.now().strftime(\"%m%d-%H%M\") + \"/\",\n",
" loadModelDir=None,\n",
")\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"√√√√√Enviroment Initialized Success√√√√√\n",
"√√√√√Buffer Initialized Success√√√√√\n",
"---------thisPPO Params---------\n",
"self.stateSize = 31\n",
"self.disActShape = [3, 3, 2]\n",
"self.disActSize 3\n",
"self.disOutputSize 8\n",
"self.conActSize = 1\n",
"self.conActRange = 10\n",
"self.conOutputSize = 2\n",
"---------thisPPO config---------\n",
"self.NNShape = [512, 512, 256]\n",
"self.criticLR = 0.002\n",
"self.actorLR = 0.002\n",
"self.gamma = 0.99\n",
"self.lmbda = 0.95\n",
"self.clipRange = 0.2\n",
"self.entropyWeight = 0.01\n",
"self.trainEpochs = 5\n",
"self.saveDir = GAIL-Model/1023-2324/\n",
"self.loadModelDir = None\n",
"---------Actor Model Create Success---------\n",
"Model: \"model_1\"\n",
"__________________________________________________________________________________________________\n",
" Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
" stateInput (InputLayer) [(None, 31)] 0 [] \n",
" \n",
" dense0 (Dense) (None, 512) 16384 ['stateInput[0][0]'] \n",
" \n",
" dense1 (Dense) (None, 512) 262656 ['dense0[0][0]'] \n",
" \n",
" dense2 (Dense) (None, 256) 131328 ['dense1[0][0]'] \n",
" \n",
" muOut (Dense) (None, 1) 257 ['dense2[0][0]'] \n",
" \n",
" sigmaOut (Dense) (None, 1) 257 ['dense2[0][0]'] \n",
" \n",
" disAct0 (Dense) (None, 3) 771 ['dense2[0][0]'] \n",
" \n",
" disAct1 (Dense) (None, 3) 771 ['dense2[0][0]'] \n",
" \n",
" disAct2 (Dense) (None, 2) 514 ['dense2[0][0]'] \n",
" \n",
" tf.math.multiply (TFOpLambda) (None, 1) 0 ['muOut[0][0]'] \n",
" \n",
" tf.math.add (TFOpLambda) (None, 1) 0 ['sigmaOut[0][0]'] \n",
" \n",
" totalOut (Concatenate) (None, 10) 0 ['disAct0[0][0]', \n",
" 'disAct1[0][0]', \n",
" 'disAct2[0][0]', \n",
" 'tf.math.multiply[0][0]', \n",
" 'tf.math.add[0][0]'] \n",
" \n",
"==================================================================================================\n",
"Total params: 412,938\n",
"Trainable params: 412,938\n",
"Non-trainable params: 0\n",
"__________________________________________________________________________________________________\n",
"---------Critic Model Create Success---------\n",
"Model: \"model\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" stateInput (InputLayer) [(None, 31)] 0 \n",
" \n",
" dense0 (Dense) (None, 512) 16384 \n",
" \n",
" dense1 (Dense) (None, 512) 262656 \n",
" \n",
" dense2 (Dense) (None, 256) 131328 \n",
" \n",
" dense (Dense) (None, 1) 257 \n",
" \n",
"=================================================================\n",
"Total params: 410,625\n",
"Trainable params: 410,625\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n",
"No loadDir specified,Create a New Model\n",
"CONTINUOUS_SIZE 1\n",
"DISCRETE_SIZE 3\n",
"STATE_SIZE 31\n"
]
}
],
"source": [
"# initialize enviroment & buffer class\n",
"env = aimBotEnv.makeEnv(envPath=ENV_PATH, workerID=WORKER_ID, basePort=BASE_PORT)\n",
"ppoBuffer = PPOBuffer()\n",
"ppoHistory = PPOHistory()\n",
"\n",
"STATE_SIZE = env.STATE_SIZE\n",
"DISCRETE_SHAPE = env.DISCRETE_SHAPE\n",
"DISCRETE_SIZE = env.DISCRETE_SIZE\n",
"CONTINUOUS_SIZE = env.CONTINUOUS_SIZE\n",
"ACTSPEC = env.ACTION_SPEC\n",
"_, _, _, loadDir, _ = env.getSteps()\n",
"\n",
"agent = PPO(\n",
" stateSize=STATE_SIZE,\n",
" disActShape=DISCRETE_SHAPE,\n",
" conActSize=CONTINUOUS_SIZE,\n",
" conActRange=CTN_ACTION_RANGE,\n",
" PPOConfig=ppoConfig,\n",
")\n",
"\n",
"# check load model or not\n",
"if np.any(loadDir == 0):\n",
" # create a new model\n",
" print(\"No loadDir specified,Create a New Model\")\n",
" LOAD_DIR = None\n",
"else:\n",
" # load model\n",
" loadDirDateSTR = str(int(loadDir[0]))\n",
" loadDirTimeSTR = str(int(loadDir[1]))\n",
" if len(loadDirDateSTR) != 8:\n",
" # fill lost 0 while converse float to string\n",
" for _ in range(8 - len(loadDirDateSTR)):\n",
" loadDirDateSTR = \"0\" + loadDirDateSTR\n",
" if len(loadDirTimeSTR) != 6:\n",
" # fill lost 0 while converse float to string\n",
" for _ in range(6 - len(loadDirTimeSTR)):\n",
" loadDirTimeSTR = \"0\" + loadDirTimeSTR\n",
" LOAD_DIR = \"PPO-Model/\" + loadDirDateSTR + \"/\" + loadDirTimeSTR\n",
" print(\"Load Model:\")\n",
" print(LOAD_DIR)\n",
"\n",
"print(\"CONTINUOUS_SIZE\", CONTINUOUS_SIZE)\n",
"print(\"DISCRETE_SIZE\", DISCRETE_SIZE)\n",
"print(\"STATE_SIZE\", STATE_SIZE)\n",
"\n",
"disActShape = [3, 3, 2]\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 1512x936 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bestScore = 200.0\n",
"\n",
"maxTotalReward = -99999999999\n",
"\n",
"for ep in range(MAX_EP):\n",
" print(\"EP \", ep, \" START\")\n",
" # first time run game\n",
" s, _, _, _, _ = env.reset()\n",
" if ep == 0:\n",
" s = s.reshape([STATE_SIZE])\n",
" step = 0\n",
" done = False\n",
"\n",
" # save weight immediately?\n",
" saveNow = 0\n",
"\n",
" epTotalReward = 0\n",
" entropys = []\n",
"\n",
" while not done:\n",
" step += 1\n",
"\n",
" actions, predictResult = agent.chooseAction(s)\n",
" avrEntropy, _, _ = agent.getAverageEntropy(predictResult)\n",
" nextState, thisReward, done, _, saveNow = env.step(actions=actions)\n",
"\n",
" entropys.append(avrEntropy)\n",
" ppoBuffer.saveBuffers(\n",
" state=s, actorProb=predictResult, action=actions, reward=thisReward, done=done\n",
" )\n",
" epTotalReward += thisReward\n",
"\n",
" nextState = nextState.reshape([STATE_SIZE])\n",
" s = nextState\n",
"\n",
" if done:\n",
" print(\"EP OVER!\")\n",
" if saveNow != 0:\n",
" print(\"SAVENOW!\")\n",
" saveNow = 0\n",
" agent.saveWeights()\n",
" # update PPO after Batch step or GameOver\n",
" if (step + 1) % BATCH == 0 or done:\n",
" if TRAIN:\n",
" actorLosses, criticLosses = agent.trainCritcActor(\n",
" states=ppoBuffer.getStates(),\n",
" oldActorResult=ppoBuffer.getActorProbs(),\n",
" actions=ppoBuffer.getActions(),\n",
" rewards=ppoBuffer.getRewards(),\n",
" dones=ppoBuffer.getDones(),\n",
" nextState=nextState,\n",
" )\n",
" clear_output()\n",
" ppoBuffer.clearBuffer()\n",
" ppoHistory.saveHis(epTotalReward, np.mean(entropys), actorLosses, criticLosses)\n",
" ppoHistory.drawHis()\n",
" if epTotalReward > maxTotalReward and epTotalReward != 0:\n",
" maxTotalReward = epTotalReward\n",
" agent.saveWeights(epTotalReward)\n",
" print(\"New Record! Save NN\", epTotalReward)\n",
" epTotalReward = 0\n"
]
}
],
"metadata": {
"interpreter": {
"hash": "86e2db13b09bd6be22cb599ea60c1572b9ef36ebeaa27a4c8e961d6df315ac32"
},
"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
},
"nbformat": 4,
"nbformat_minor": 2
}