Created
May 27, 2016 13:21
-
-
Save justheuristic/54cd41ebc8f00b65b6f9b3114de86243 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "###### Authors: Aleksey Grinchuk (AlexGrinch), Mariya Popova (Mariewelt) ... and some hedgehog" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "env: THEANO_FLAGS='device=gpu0'\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "#from __future__ import print_function \n", | |
| "experiment_setup_name = \"tutorial.gym.atari.MsPacman-v0.cnn\"\n", | |
| "\n", | |
| "\n", | |
| "#gym game title\n", | |
| "GAME_TITLE = 'MsPacman-v0'\n", | |
| "\n", | |
| "#how many parallel game instances can your machine tolerate\n", | |
| "N_PARALLEL_GAMES = 20\n", | |
| "\n", | |
| "#how long is one replay session from a batch\n", | |
| "#since we have window-like memory (no recurrent layers), we can use relatively small session weights\n", | |
| "replay_seq_len = 50\n", | |
| "\n", | |
| "\n", | |
| "#theano device selection. GPU is, as always, in preference, but not required\n", | |
| "%env THEANO_FLAGS='device=gpu0'" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# This tutorial is a showcase on how to use AgentNet for OpenAI Gym environments\n", | |
| "\n", | |
| "\n", | |
| "* Pacman game as an example\n", | |
| "* Training a simple lasagne neural network for Q_learning objective\n", | |
| " * This example can be easily modified to use more difficult convolutional networks and/or recurrent agent memory. \n", | |
| " \n", | |
| "* Training via simple experience replay (explained below)\n", | |
| "* Only using utility recurrent layers for simplicity of this example\n", | |
| " * but adding a few RNNs or GRUs shouldn's be a problem\n", | |
| "* the network is trained with a simple ten-step Q-learning for simplicity\n", | |
| "\n", | |
| "\n", | |
| "## About OpenAI Gym\n", | |
| "\n", | |
| "* Its a recently published platform that basicly allows you to train agents in a wide variety of environments with near-identical interface.\n", | |
| "* This is twice as awesome since now we don't need to write a new wrapper for every game\n", | |
| "* Go check it out!\n", | |
| " * Blog post - https://openai.com/blog/openai-gym-beta/\n", | |
| " * Github - https://github.com/openai/gym\n", | |
| " \n", | |
| "### Installing it\n", | |
| " * If nothing changed on their side, to run this, you bacically need to follow their install instructions - \n", | |
| " \n", | |
| "```\n", | |
| "git clone https://github.com/openai/gym.git\n", | |
| "cd gym\n", | |
| "pip install -e .[all]\n", | |
| "```\n", | |
| "\n", | |
| "## New to AgentNet and Lasagne?\n", | |
| "* This is pretty much the basic tutorial for AgentNet, so it's okay not to know it.\n", | |
| "* We only require surface level knowledge of theano and lasagne, so you can just learn them as you go.\n", | |
| "* Alternatively, you can find Lasagne tutorials here:\n", | |
| " * Official mnist example: http://lasagne.readthedocs.io/en/latest/user/tutorial.html\n", | |
| " * From scratch: https://github.com/ddtm/dl-course/tree/master/Seminar4\n", | |
| " * From theano: https://github.com/craffel/Lasagne-tutorial/blob/master/examples/tutorial.ipynb\n", | |
| "\n", | |
| "\n", | |
| "## The library\n", | |
| "\n", | |
| "In this notebook we shall use [AgentNet](https://github.com/BladeCarrier/AgentNet/) library.\n", | |
| "Agentnet, in essence, is an additional kit of lasagne layers that allow you to build custom recurrent layers.\n", | |
| "Assuming you already have Bleeding Edge theano and lasagne, you can install it via\n", | |
| "```\n", | |
| "git clone https://github.com/yandexdataschool/AgentNet\n", | |
| "cd AgentNet\n", | |
| "python setup.py install\n", | |
| "```\n", | |
| "in whatever python, environment or container you exist. Alternatively, see docker install instructions in the [readme](https://github.com/yandexdataschool/AgentNet/blob/master/README.md).\n", | |
| "\n", | |
| "\n", | |
| "Depending what python version do you use, in may be \n", | |
| "* `python3 setup.py install` \\ `python2 setup.py install` if you are using a different python\n", | |
| "* add sudo - `sudo python setup.py install` - if you have a superuser-installed python\n", | |
| "* in case you have any problems - contact us or consider using a docker container (see above).\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Preprocess functions" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "These functions allow us to preprocess original images from size of 210x160x3 (RGB images) to size of 110x84 (grayscale images)." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### {when reproducing, i replaced OpenCV2 with PIL.Image to avoid compiling opencv}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "Using gpu device 0: Tesla K40m (CNMeM is disabled, cuDNN Version is too old. Update to v5, was 4004.)\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "#import cv2\n", | |
| "import theano\n", | |
| "from PIL import Image\n", | |
| "\n", | |
| "def preprocess(image):\n", | |
| " def_h = 84\n", | |
| " def_w = 110\n", | |
| " img = 0.299*image[:,:,0] + 0.587*image[:,:,1] + 0.114*image[:,:,2]\n", | |
| " \n", | |
| " #was before:\n", | |
| " #img = cv2.resize(img, (def_h, def_w))\n", | |
| " \n", | |
| " #is now:\n", | |
| " img = Image.fromarray(img).resize((def_h, def_w))\n", | |
| " \n", | |
| " img = np.expand_dims(img, axis=2)\n", | |
| " return img" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "def preprocess_tensor(tensor):\n", | |
| " def_h = 84\n", | |
| " def_w = 110\n", | |
| " tnsr = np.zeros((tensor.shape[0], tensor.shape[1], def_w, def_h, 1),dtype=theano.config.floatX)\n", | |
| " for i in xrange(tensor.shape[0]):\n", | |
| " for j in xrange(tensor.shape[1]):\n", | |
| " img = 0.299*tensor[i,j,:,:,0] + 0.587*tensor[i,j,:,:,1] + 0.114*tensor[i,j,:,:,2]\n", | |
| " tnsr[i,j,:,:,0] = Image.fromarray(img).resize((def_h, def_w))\n", | |
| " return tnsr" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "def preprocess_tensor4(tensor):\n", | |
| " def_h = 84\n", | |
| " def_w = 110\n", | |
| " tnsr = np.zeros((tensor.shape[0], def_w, def_h, 1),dtype=theano.config.floatX)\n", | |
| " for i in xrange(tensor.shape[0]):\n", | |
| " img = 0.299*tensor[i,:,:,0] + 0.587*tensor[i,:,:,1] + 0.114*tensor[i,:,:,2]\n", | |
| " tnsr[i,:,:,0] = Image.fromarray(img).resize((def_h, def_w))\n", | |
| " return tnsr" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Experiment setup\n", | |
| "* Here we basically just load the game" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import matplotlib.pyplot as plt\n", | |
| "import numpy as np\n", | |
| "%matplotlib inline" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "[2016-05-26 12:49:10,753] Making new env: MsPacman-v0\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.image.AxesImage at 0x11e9bf10>" | |
| ] | |
| }, | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\nYTwCgUH+P8m0MbhUVw/QAAAAAElFTkSuQmCC\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x11db2f90>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "import gym\n", | |
| "atari = gym.make(GAME_TITLE)\n", | |
| "atari.reset()\n", | |
| "plt.imshow(atari.render('rgb_array'))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.image.AxesImage at 0x120fd9d0>" | |
| ] | |
| }, | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAM8AAAD/CAYAAABW+4LyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAENNJREFUeJzt3W+MHPV9x/H3BwwNcOA6qfCpoTggxJH0DwmCWxoXJSqk\nJaTCPKIgFPFH7ZNig9JCsf2kzyxIiBC6ax+gEupSaGKSpnaltDiWldAixQfBGGTjgxYbDMkdQSCi\na6U20G8fzJx7t97l9n4zuzOz93lJlndnZ7/z29n7znfmN7O/UURgZst3UtUNMGsqJ49ZIiePWSIn\nj1kiJ49ZIiePWaK+JY+kqyUdlvSypHv6tRyzqqgf53kknQS8DFwJ/AR4BrghIg6XvjCzivSr8owD\nr0TEaxHxC+CbwIY+LcusEv1Kno8DxxY8fyOfZjY0VlW1YEm+LsgaIyLUPq1fyfMmcO6C5+fk0xa5\n7LLLaLVaAIyPjx9/XMTExASbNm0qHKcp8foRc6XFa4+5b98+pqamjr82OTnZ8T39Sp5ngAskrQN+\nCtwA3Ng+U6vVKn0lmBXVarUWbci7JU9fetsg66oGHiQ7rno4Iu5tez02btx4QvJcf/31hZY7MzPD\n6OhooRjt8Z566qmOr6W0tez29SNmv+Lt2LGj4+vLXY+DWIcL2zo2NjbQ3TYi4l+AsQ+bZ3x8vPTl\njoyMrKh4/Yi50uKlxqz0CoMyjnHa1f2LqssX73jFY/ryHLNElXVV96p9P7l9/7jTfvRS8yz39V7V\nua1lxK3reqyqra48Zon61tu25IKlmJ6ePmF60d62fiirl2ila9J67KW3zZXHLJGTxyyRk8cskZPH\nLJGTxyzRUJ7nWUpVvTspba2zJq3HfrTVlccskZPHLJGTxyxR7Y95BmFQ12QNu5W2Hl15zBK58lDe\nlq2uW8hBWWnr0ZXHLFHtK09TtkK28rjymCVy8pglcvKYJXLymCXyz7DNOvDPsM36yMljlsjJY5bI\nyWOWyMljlqj2l+fUYQjbXgfrq0Nbu6nDELb9Wo8ebtesYXyex6yDvp7nkXSOpL2SDkp6UdId+fQ1\nknZLmpb0pKTVqcswq7Miu23vA38aEb8O/DZwu6SLgM3AnogYA/YCW4o306x+kpMnImYi4vn88Rzw\nEtldrzcA2/PZtgPXFW2kWR2Vcswj6RPAD4DfAI5FxJoFr70TER/t8J6OxzxLSTkmKtqzkjpYYRlt\n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\nAAAAAElFTkSuQmCC\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x119cba10>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.imshow(preprocess(atari.render('rgb_array'))[:,:,0], cmap='gray', interpolation='nearest')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Game Parameters\n", | |
| "* observation dimensions, actions, etc" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "['NOOP', 'UP', 'RIGHT', 'LEFT', 'DOWN', 'UPRIGHT', 'UPLEFT', 'DOWNRIGHT', 'DOWNLEFT']\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "n_actions = atari.action_space.n\n", | |
| "observation_shape = (None,) + (110, 84, 1)#atari.observation_space.shape\n", | |
| "action_names = atari.get_action_meanings()\n", | |
| "print action_names" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(None, 110, 84, 1)" | |
| ] | |
| }, | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "observation_shape" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "del atari" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Agent setup step by step\n", | |
| "* An agent implementation may contain these parts:\n", | |
| " * Observation(s)\n", | |
| " * InputLayers where observed game states (here - images) are sent at each tick \n", | |
| " * Memory layer(s)\n", | |
| " * A dictionary that maps \"New memory layers\" to \"prev memory layers\"\n", | |
| " * Policy layer (e.g. Q-values or probabilities)\n", | |
| " * in this case, a lasagne dense layer based on observation layer\n", | |
| " * Resolver - acton picker layer\n", | |
| " * chooses what action to take given Q-values\n", | |
| " * in this case, the resolver has epsilon-greedy policy\n", | |
| " \n", | |
| " \n", | |
| "We are going to build something of this shape:\n", | |
| "\n", | |
| "(one can assume that the 'time' goes from left to right, inputs are at the bottom and outputs go to the top)\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| " \n", | |
| "\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "##### Agent observations\n", | |
| "\n", | |
| "* Here you define where observations (game images) appear in the network" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import lasagne\n", | |
| "from lasagne.layers import InputLayer, DimshuffleLayer" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#image observation at current tick goes here\n", | |
| "observation_layer = InputLayer(observation_shape, name=\"images input\")\n", | |
| "\n", | |
| "\n", | |
| "#reshape to [batch, color, x, y] to allow for convolutional layers to work correctly\n", | |
| "observation_reshape = DimshuffleLayer(observation_layer,(0,3,1,2))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " \n", | |
| "### Agent memory states\n", | |
| " * Here you can define arbitrary transitions between \"previous state\" variables and their next states\n", | |
| " * The rules are\n", | |
| " * previous states must be input layers\n", | |
| " * next states must have same shape as previous ones\n", | |
| " * otherwise it can be any lasagne network\n", | |
| " * AgentNet.memory has several useful layers\n", | |
| " \n", | |
| " * During training and evaluation, your states will be updated recurrently\n", | |
| " * next state at t=1 is given as previous state to t=2\n", | |
| " \n", | |
| " * Finally, you have to define a dictionary mapping new state -> previous state\n", | |
| "\n", | |
| "\n", | |
| "### In this demo\n", | |
| "Since we have almost fully observable environment AND we want to keep baseline simple, we shall use no recurrent units.\n", | |
| "However, Atari game environments are known to have __flickering__ effect where some sprites are shown only on odd frames and others on even ones - that was used to optimize performance at the time.\n", | |
| "To compensate for this, we shall use the memory layer called __WindowAugmentation__ which basically maintains a K previous time steps of what it is fed with.\n", | |
| "\n", | |
| "One can try to use\n", | |
| " * GRU - `from agentnet.memory import GRUMemoryLayer`\n", | |
| " * RNN - `from agentnet.memory import RNNCell`\n", | |
| " * any custom lasagne layers that compute new memory states\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#memory\n", | |
| "#using simple window-based memory that stores several states\n", | |
| "#the SpaceInvaders environment does not need any more as it is almost fully-observed\n", | |
| "from agentnet.memory import WindowAugmentation\n", | |
| "\n", | |
| "\n", | |
| "window_size = 5\n", | |
| "\n", | |
| "\n", | |
| "#prev state input\n", | |
| "prev_window = InputLayer((None,window_size)+tuple(observation_reshape.output_shape[1:]),\n", | |
| " name = \"previous window state\")\n", | |
| "\n", | |
| "\n", | |
| "#our window\n", | |
| "window = WindowAugmentation(observation_reshape,\n", | |
| " prev_window,\n", | |
| " name = \"new window state\")\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "memory_dict = {window:prev_window}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "##### Neural network body\n", | |
| "Our strategy, again:\n", | |
| " * take pixel-wise maximum over the window\n", | |
| " * apply some layers\n", | |
| " * use output layer to predict Q-values(see next)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "from lasagne.layers import DropoutLayer,DenseLayer, ExpressionLayer\n", | |
| "#you may use any other lasagne layers, including convolutions, batch_norms, maxout, etc\n", | |
| "\n", | |
| "#pixel-wise maximum over the temporal window (to avoid flickering)\n", | |
| "window_max = ExpressionLayer(window,\n", | |
| " lambda a: a.max(axis=1),\n", | |
| " output_shape = (None,)+window.output_shape[2:])\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "#a simple lasagne network (try replacing with any other lasagne network and see what works best) \n", | |
| "nn = lasagne.layers.Conv2DLayer(window_max, num_filters=16, filter_size=(8, 8), stride=(4, 4))\n", | |
| "nn = lasagne.layers.BatchNormLayer(nn)\n", | |
| "nn = lasagne.layers.Conv2DLayer(nn, num_filters=32, filter_size=(4, 4), stride=(2, 2))\n", | |
| "nn = lasagne.layers.BatchNormLayer(nn)\n", | |
| "nn = lasagne.layers.DenseLayer(nn, num_units=256)\n", | |
| "nn = lasagne.layers.BatchNormLayer(nn)\n", | |
| "\n", | |
| "#WARNING! if your network is computing too slowly, try decreasing the amount of neurons" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "##### Agent policy and action picking\n", | |
| "* Since we are training a deep Q-network, we need it to predict Q-values and take actions.\n", | |
| "* Hence we define a lasagne layer that is used for action output\n", | |
| "\n", | |
| "* To pick actions, we use an epsilon-greedy resolver\n", | |
| " * Note that resolver outputs particular action IDs and not probabilities.\n", | |
| " * These actions are than sent into the environment" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#q_eval\n", | |
| "q_eval = DenseLayer(nn,\n", | |
| " num_units = n_actions,\n", | |
| " nonlinearity=lasagne.nonlinearities.linear,\n", | |
| " name=\"QEvaluator\")\n", | |
| "\n", | |
| "#resolver\n", | |
| "from agentnet.resolver import EpsilonGreedyResolver\n", | |
| "resolver = EpsilonGreedyResolver(q_eval,name=\"resolver\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "##### Finally, agent\n", | |
| "We declare that this network is and MDP agent with such and such inputs, states and outputs" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "from agentnet.agent import Agent\n", | |
| "#all together\n", | |
| "agent = Agent(observation_layer,\n", | |
| " memory_dict,\n", | |
| " q_eval,resolver)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "[W,\n", | |
| " b,\n", | |
| " beta,\n", | |
| " gamma,\n", | |
| " W,\n", | |
| " b,\n", | |
| " beta,\n", | |
| " gamma,\n", | |
| " W,\n", | |
| " b,\n", | |
| " beta,\n", | |
| " gamma,\n", | |
| " QEvaluator.W,\n", | |
| " QEvaluator.b]" | |
| ] | |
| }, | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "#Since it's a single lasagne network, one can get it's weights, output, etc\n", | |
| "weights = lasagne.layers.get_all_params(resolver,trainable=True)\n", | |
| "weights" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Agent step function\n", | |
| "* computes action and next state given observation and prev state\n", | |
| "* written in a generic way to support any recurrences, windows, LTMs, etc" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#compile theano graph for one step decision making\n", | |
| "applier_fun = agent.get_react_function()\n", | |
| "\n", | |
| "#a nice pythonic interface\n", | |
| "def step(observation, prev_memories = 'zeros', batch_size = N_PARALLEL_GAMES):\n", | |
| " \"\"\" returns actions and new states given observation and prev state\n", | |
| " Prev state in default setup should be [prev window,]\"\"\"\n", | |
| " \n", | |
| " \n", | |
| " \n", | |
| " #default to zeros\n", | |
| " if prev_memories == 'zeros':\n", | |
| " prev_memories = [np.zeros((batch_size,)+tuple(mem.output_shape[1:]),\n", | |
| " dtype='float32') \n", | |
| " for mem in agent.agent_states]\n", | |
| " \n", | |
| " obs = preprocess_tensor4(np.array(observation))\n", | |
| " res = applier_fun(obs,*prev_memories)\n", | |
| " \n", | |
| " action = res[0]\n", | |
| " memories = res[1:]\n", | |
| " return action, memories" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Create and manage a pool of atari sessions to play with\n", | |
| "\n", | |
| "* To make training more stable, we shall have an entire batch of game sessions each happening independent of others\n", | |
| "* We define a small container that stores\n", | |
| " * game emulators\n", | |
| " * last agent observations\n", | |
| " * agent memories at last time tick\n", | |
| "* This allows us to instantly continue a session from where it stopped\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "* Why several parallel agents help training: http://arxiv.org/pdf/1602.01783v1.pdf" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 19, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "[2016-05-26 12:49:18,595] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,623] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,651] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,677] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,704] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,731] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,758] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,786] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,813] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,840] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,867] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,894] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,921] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,948] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:18,975] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:19,003] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:19,031] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:19,057] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:19,084] Making new env: MsPacman-v0\n", | |
| "[2016-05-26 12:49:19,111] Making new env: MsPacman-v0\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from agentnet.experiments.openai_gym.pool import GamePool\n", | |
| "\n", | |
| "pool = GamePool(GAME_TITLE, N_PARALLEL_GAMES)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "[['UP' 'UP' 'UP' 'UP' 'UP']\n", | |
| " ['UP' 'UP' 'UP' 'UP' 'UP']\n", | |
| " ['RIGHT' 'UP' 'LEFT' 'UP' 'UP']]\n", | |
| "CPU times: user 2.58 s, sys: 468 ms, total: 3.04 s\n", | |
| "Wall time: 3.05 s\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%%time\n", | |
| "observation_log,action_log,reward_log,_,_,_ = pool.interact(step,50)\n", | |
| "\n", | |
| "print(np.array(action_names)[np.array(action_log)[:3,:5]])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Experience replay pool\n", | |
| "\n", | |
| "Since our network exists in a theano graph and OpenAI gym doesn't, we shall train out network via experience replay.\n", | |
| "\n", | |
| "To do that in AgentNet, one can use a SessionPoolEnvironment.\n", | |
| "\n", | |
| "It's simple: you record new sessions using `interact(...)`, and than immediately train on them.\n", | |
| "\n", | |
| "1. Interact with Atari, get play sessions\n", | |
| "2. Store them into session environment\n", | |
| "3. Train on them\n", | |
| "4. Repeat\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 21, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#Create an environment with all default parameters\n", | |
| "from agentnet.environment import SessionPoolEnvironment\n", | |
| "env = SessionPoolEnvironment(observations = observation_layer,\n", | |
| " actions=resolver,\n", | |
| " agent_memories=agent.agent_states)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "def update_pool(env, pool,n_steps=100):\n", | |
| " \"\"\" a function that creates new sessions and ads them into the pool\n", | |
| " throwing the old ones away entirely for simplicity\"\"\"\n", | |
| "\n", | |
| " preceding_memory_states = list(pool.prev_memory_states)\n", | |
| " \n", | |
| " #get interaction sessions\n", | |
| " observation_tensor,action_tensor,reward_tensor,_,is_alive_tensor,_= pool.interact(step,n_steps=n_steps)\n", | |
| " observation_tensor = preprocess_tensor(observation_tensor)\n", | |
| " \n", | |
| " #load them into experience replay environment\n", | |
| " env.load_sessions(observation_tensor,action_tensor,reward_tensor,is_alive_tensor,preceding_memory_states)\n", | |
| " \n", | |
| " " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 23, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#load first sessions\n", | |
| "update_pool(env,pool,replay_seq_len)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "A more sophisticated way of training is to store a large pool of sessions and train on random batches of them. \n", | |
| "* Why that is expected to be better - http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html\n", | |
| "* Or less proprietary - https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf\n", | |
| "\n", | |
| "To do that, one might make use of\n", | |
| "* ```env.load_sessions(...)``` - load new sessions\n", | |
| "* ```env.get_session_updates(...)``` - does the same thing via theano updates (advanced)\n", | |
| "* ```batch_env = env.sample_session_batch(batch_size, ...)``` - create an experience replay environment that contains batch_size random sessions from env (rerolled each time). Should be used in training instead of env.\n", | |
| "* ```env.select_session_batch(indices)``` does the same thing deterministically.\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Interacting with environment\n", | |
| "* An agent has a method that produces symbolic environment interaction sessions\n", | |
| "* Such sessions are in sequences of observations, agent memory, actions, q-values,etc\n", | |
| " * one has to pre-define maximum session length.\n", | |
| "\n", | |
| "* SessionPool also stores rewards (Q-learning objective)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Training via experience replay\n", | |
| "\n", | |
| "* We use agent we have created to replay environment interactions inside Theano\n", | |
| "* to than train on the replayed sessions via theano gradient propagation\n", | |
| "* this is essentially basic Lasagne code after the following cell" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 24, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#get agent's Qvalues obtained via experience replay\n", | |
| "_,_,_,_,qvalues_seq = agent.get_sessions(\n", | |
| " env,\n", | |
| " session_length=replay_seq_len,\n", | |
| " batch_size=env.batch_size,\n", | |
| " optimize_experience_replay=True,\n", | |
| ")\n", | |
| "\n", | |
| "\n", | |
| "#The \"_\"s are\n", | |
| "#first - environment states - which is empty since we are using session pool as our environment\n", | |
| "#secund - observation sequences - whatever agent recieved at observation input(s) on each tick\n", | |
| "#third - a dictionary of all agent memory units (RNN, GRU, NTM) - empty as we use none of them\n", | |
| "#last - \"imagined\" actions - actions agent would pick now if he was in that situation \n", | |
| "# - irrelevant since we are replaying and not actually playing the game now\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Evaluating loss function\n", | |
| "* In this part we are using some basic Reinforcement Learning methods (here - Q-learning) to train\n", | |
| "* AgentNet has plenty of such methods, but we shall use the simple Q_learning for now.\n", | |
| "* Later you can try:\n", | |
| " * SARSA - simpler on-policy algorithms\n", | |
| " * N-step q-learning (requires n_steps parameter)\n", | |
| " * Advantage Actor-Critic (requires state values and probabilities instead of Q-values)\n", | |
| "\n", | |
| "\n", | |
| "* The basic interface is .get_elementwise_objective \n", | |
| " * it returns loss function (here - squared error against reference Q-values) values at each batch and tick\n", | |
| " \n", | |
| "* If you want to do it the hard way instead, try .get_reference_Qvalues and compute errors on ya own\n", | |
| " " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 25, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#get reference Qvalues according to Qlearning algorithm\n", | |
| "\n", | |
| "\n", | |
| "from agentnet.learning import qlearning_n_step\n", | |
| "\n", | |
| "#gamma - delayed reward coefficient - what fraction of reward is retained if it is obtained one tick later\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "#IMPORTANT!\n", | |
| "# If you are training on a game that has rewards far outside some [-5,+5]\n", | |
| "# it is a good idea to downscale them to avoid divergence\n", | |
| "scaled_reward_seq = env.rewards\n", | |
| "#For SpaceInvaders, however, not scaling rewards is at least working\n", | |
| "\n", | |
| "\n", | |
| "elwise_mse_loss = qlearning_n_step.get_elementwise_objective(qvalues_seq,\n", | |
| " env.actions[0],\n", | |
| " scaled_reward_seq,\n", | |
| " env.is_alive,\n", | |
| " n_steps=10,\n", | |
| " gamma_or_gammas=0.99,)\n", | |
| "\n", | |
| "#compute mean over \"alive\" fragments\n", | |
| "mse_loss = elwise_mse_loss.sum() / env.is_alive.sum()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 26, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#regularize network weights\n", | |
| "\n", | |
| "from lasagne.regularization import regularize_network_params, l2\n", | |
| "reg_l2 = regularize_network_params(resolver,l2)*10**-4" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 27, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "loss = mse_loss + reg_l2" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 28, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Compute weight updates\n", | |
| "updates = lasagne.updates.adadelta(loss,weights,learning_rate=0.01)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 29, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#mean session reward\n", | |
| "mean_session_reward = env.rewards.sum(axis=1).mean()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Compile train and evaluation functions" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 30, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import theano\n", | |
| "train_fun = theano.function([],[loss,mean_session_reward],updates=updates)\n", | |
| "evaluation_fun = theano.function([],[loss,mse_loss,reg_l2,mean_session_reward])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Session visualization tools\n", | |
| "\n", | |
| "Just a helper function that draws current game images." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 33, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "def display_sessions(max_n_sessions = 3):\n", | |
| " \"\"\"just draw random images\"\"\"\n", | |
| " \n", | |
| " plt.figure(figsize=[15,8])\n", | |
| " \n", | |
| " pictures = [atari.render(\"rgb_array\") for atari in pool.games[:max_n_sessions]]\n", | |
| " for i,pic in enumerate(pictures):\n", | |
| " plt.subplot(1,max_n_sessions,i+1)\n", | |
| " plt.imshow(pic)\n", | |
| " plt.show()\n", | |
| " " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 34, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\nWcz/B25TgLizOeXgAAAAAElFTkSuQmCC\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x8d9d6210>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "#visualize untrained network performance (which is mostly random)\n", | |
| "display_sessions()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Training loop" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 35, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import os" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 36, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "from agentnet.display import Metrics\n", | |
| "score_log = Metrics()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 37, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#starting epoch\n", | |
| "epoch_counter = 1\n", | |
| "#moving average estimation\n", | |
| "alpha = 0.1\n", | |
| "ma_reward_current = 0.\n", | |
| "ma_reward_greedy = 0." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "epoch 1000,loss 81.73635, epsilon 0.21555, rewards: ( e-greedy 40.46814, greedy 41.59642) \n", | |
| "rec 81.653 reg 0.083\n", | |
| "Learning curves:\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\nQmCC\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x94dd07d0>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Random session examples\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x94e40550>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "epoch 1010,loss 90.44032, epsilon 0.21390, rewards: ( e-greedy 39.97132, greedy 41.88678) \n", | |
| "rec 90.357 reg 0.083\n", | |
| "epoch 1020,loss 258.35326, epsilon 0.21227, rewards: ( e-greedy 40.12419, greedy 38.99810) \n", | |
| "rec 258.270 reg 0.083\n", | |
| "epoch 1030,loss 339.91083, epsilon 0.21065, rewards: ( e-greedy 41.06177, greedy 36.99829) \n", | |
| "rec 339.828 reg 0.083\n", | |
| "epoch 1040,loss 576.24473, epsilon 0.20905, rewards: ( e-greedy 42.80560, greedy 36.49846) \n", | |
| "rec 576.162 reg 0.083\n", | |
| "epoch 1050,loss 139.47638, epsilon 0.20747, rewards: ( e-greedy 42.67504, greedy 38.74862) \n", | |
| "rec 139.393 reg 0.083\n", | |
| "epoch 1060,loss 336.62963, epsilon 0.20591, rewards: ( e-greedy 40.55753, greedy 36.37376) \n", | |
| "rec 336.547 reg 0.083\n", | |
| "epoch 1070,loss 457.82486, epsilon 0.20435, rewards: ( e-greedy 40.95178, greedy 36.78638) \n", | |
| "rec 457.742 reg 0.083\n", | |
| "epoch 1080,loss 562.32020, epsilon 0.20282, rewards: ( e-greedy 40.65660, greedy 36.70774) \n", | |
| "rec 562.237 reg 0.083\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%%time\n", | |
| "\n", | |
| "n_epochs = 10000\n", | |
| "#25k may take hours to train.\n", | |
| "#consider interrupt early.\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "for i in range(n_epochs): \n", | |
| " \n", | |
| " \n", | |
| " #train\n", | |
| " update_pool(env,pool,replay_seq_len)\n", | |
| " resolver.rng.seed(i) \n", | |
| " loss,avg_reward = train_fun()\n", | |
| " \n", | |
| " \n", | |
| " ##update resolver's epsilon (chance of random action instead of optimal one)\n", | |
| " if epoch_counter%1 ==0:\n", | |
| " current_epsilon = 0.05 + 0.45*np.exp(-epoch_counter/1000.)\n", | |
| " resolver.epsilon.set_value(np.float32(current_epsilon))\n", | |
| " \n", | |
| " \n", | |
| " \n", | |
| " ##record current learning progress and show learning curves\n", | |
| " if epoch_counter%10 ==0:\n", | |
| "\n", | |
| " ##update learning curves\n", | |
| " full_loss, q_loss, l2_penalty, avg_reward_current = evaluation_fun()\n", | |
| " ma_reward_current = (1-alpha)*ma_reward_current + alpha*avg_reward_current\n", | |
| " score_log[\"expected e-greedy reward\"][epoch_counter] = ma_reward_current\n", | |
| " \n", | |
| " \n", | |
| " \n", | |
| " #greedy train\n", | |
| " resolver.epsilon.set_value(0)\n", | |
| " update_pool(env,pool,replay_seq_len)\n", | |
| "\n", | |
| " avg_reward_greedy = evaluation_fun()[-1]\n", | |
| " ma_reward_greedy = (1-alpha)*ma_reward_greedy + alpha*avg_reward_greedy\n", | |
| " score_log[\"expected greedy reward\"][epoch_counter] = ma_reward_greedy\n", | |
| " \n", | |
| " \n", | |
| " #back to epsilon-greedy\n", | |
| " resolver.epsilon.set_value(np.float32(current_epsilon))\n", | |
| " update_pool(env,pool,replay_seq_len)\n", | |
| "\n", | |
| " print(\"epoch %i,loss %.5f, epsilon %.5f, rewards: ( e-greedy %.5f, greedy %.5f) \"%(\n", | |
| " epoch_counter,full_loss,current_epsilon,ma_reward_current,ma_reward_greedy))\n", | |
| " print(\"rec %.3f reg %.3f\"%(q_loss,l2_penalty))\n", | |
| "\n", | |
| " if epoch_counter %100 ==0:\n", | |
| " print(\"Learning curves:\")\n", | |
| " score_log.plot()\n", | |
| "\n", | |
| "\n", | |
| " print(\"Random session examples\")\n", | |
| " display_sessions()\n", | |
| " \n", | |
| " #run several sessions of game, record videos and save obtained results\n", | |
| " if epoch_counter %1000 ==0 and False:\n", | |
| " \n", | |
| " save_path = 'videos/MSPacman-v0_' + str(epoch_counter)\n", | |
| "\n", | |
| " subm_env = gym.make(GAME_TITLE)\n", | |
| "\n", | |
| " #starting monitor. This setup does not write videos\n", | |
| " #subm_env.monitor.start(save_path,lambda i: False,force=True)\n", | |
| "\n", | |
| " #this setup does\n", | |
| " subm_env.monitor.start(save_path,force=True)\n", | |
| "\n", | |
| " rws = []\n", | |
| "\n", | |
| " for i_episode in xrange(250):\n", | |
| "\n", | |
| " #initial observation\n", | |
| " observation = subm_env.reset()\n", | |
| " #initial memory\n", | |
| " prev_memories = \"zeros\"\n", | |
| "\n", | |
| " s_reward =0.\n", | |
| " t = 0\n", | |
| " while True:\n", | |
| "\n", | |
| " action,new_memories = step([observation],prev_memories,batch_size=1)\n", | |
| " observation, reward, done, info = subm_env.step(action[0])\n", | |
| "\n", | |
| " s_reward += reward\n", | |
| "\n", | |
| " prev_memories = new_memories\n", | |
| " if done:\n", | |
| " print(\"Episode finished after {} timesteps, rw = {}\".format(t+1,s_reward))\n", | |
| " rws.append(s_reward)\n", | |
| " break\n", | |
| " t+=1\n", | |
| "\n", | |
| " subm_env.monitor.close()\n", | |
| "\n", | |
| " rws = np.array(rws)\n", | |
| " np.savez(open('rws4hist_'+str(epoch_counter)+'.npz', 'wb'), rws=rws)\n", | |
| " \n", | |
| " \n", | |
| " epoch_counter +=1\n", | |
| "\n", | |
| " \n", | |
| "# Time to drink some coffee!" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Record videos" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 80, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "INFO:gym.envs.registration:Making new env: MsPacman-v0\n", | |
| "[2016-05-26 14:17:26,131] Making new env: MsPacman-v0\n", | |
| "INFO:gym.monitoring.monitor:Clearing 16 monitor files from previous run (because force=True was provided)\n", | |
| "[2016-05-26 14:17:26,164] Clearing 16 monitor files from previous run (because force=True was provided)\n", | |
| "INFO:gym.monitoring.monitor:Finished writing results. You can upload them to the scoreboard via gym.upload('/home/user/atari_games/AgentNet/examples/videos/MSPacman-v0_22000')\n", | |
| "[2016-05-26 14:17:26,166] Finished writing results. You can upload them to the scoreboard via gym.upload('/home/user/atari_games/AgentNet/examples/videos/MSPacman-v0_22000')\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "save_path = 'videos/MSPacman-v0_' + str(epoch_counter-1)\n", | |
| "\n", | |
| "subm_env = gym.make(GAME_TITLE)\n", | |
| "\n", | |
| "#starting monitor. This setup does not write videos\n", | |
| "#subm_env.monitor.start(save_path,lambda i: False,force=True)\n", | |
| "\n", | |
| "#this setup does\n", | |
| "subm_env.monitor.start(save_path,force=True)\n", | |
| "\n", | |
| "rws = []\n", | |
| "\n", | |
| "for i_episode in xrange(220):\n", | |
| "\n", | |
| " #initial observation\n", | |
| " observation = subm_env.reset()\n", | |
| " #initial memory\n", | |
| " prev_memories = \"zeros\"\n", | |
| "\n", | |
| " s_reward =0.\n", | |
| " t = 0\n", | |
| " while True:\n", | |
| "\n", | |
| " action,new_memories = step([observation],prev_memories,batch_size=1)\n", | |
| " observation, reward, done, info = subm_env.step(action[0])\n", | |
| "\n", | |
| " s_reward += reward\n", | |
| "\n", | |
| " prev_memories = new_memories\n", | |
| " if done:\n", | |
| " print(\"Episode finished after {} timesteps, rw = {}\".format(t+1,s_reward))\n", | |
| " rws.append(s_reward)\n", | |
| " break\n", | |
| " t+=1\n", | |
| "\n", | |
| "subm_env.monitor.close()\n", | |
| "\n", | |
| "rws = np.array(rws)\n", | |
| "np.savez(open('rws4hist_'+str(epoch_counter-1)+'.npz', 'wb'), rws=rws)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 39, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n", | |
| " array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ]),\n", | |
| " <a list of 10 Patch objects>)" | |
| ] | |
| }, | |
| "execution_count": 39, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\nQmCC\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x94b27810>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.hist(rws)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Evaluating results\n", | |
| " * Here we plot learning curves and sample testimonials" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 42, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n77775J577vHY7+ppDi0Wi9e2X375ZRkzZoyIiLz22mvSsWNHmThxomPbuHHjRETk+PHjsnz5crFY\nLFJUVCQ/+9nPHNtERDIzMyUtLU22b98ulZWVUl5eXq/7I9J4fysG38L5nC4x7PHwmi6o5gt+lAb5\n1Jemli6xthSD1Wnfvr3861//cpRfeumlM5T+kiVLHOWa5DljxgwREbnkkkvcHmh5eXkSEhIilZWV\n8thjjzmUsIhIcXGxNG/e3CGLN954QwYPHiwiIpWVlZKUlCTffPONx357SnPorW3XvLm33367WwrE\nqVOnyjPPPOOxnS1btrjl283MzJRHHnnEUa7v/RExSr+p4iul75fMWWdj2pFHAmP7bGrpEr2lGHzt\ntde47bbbUEpx+eWX8+GHH56RGtBTrHnX7bXJMycnh/HjxzuieooIISEh5Ofnk5eX53b+li1bOswq\nAOPGjePOO+8kJyeH7du3ExMTw6WXXlqj3Kr31Vvb7du3Jzw8nC1btvD555/z8MMPs2jRInbt2sX6\n9eu59957ASgtLWX27NmsXr2awsJCRISioiJExDE569pufe9PU8P46fueRqv0A0VTS5dYW4rBm25y\nX5vXpk0bDh48yMUXX+w4t7f+1ibP1NRUXn755TMenqBTOe7YscNRLikp4fjx445yaGgoEyZM4JVX\nXmHHjh21uj1Wl6O3tkFn2nrnnXccD+uhQ4eydOlSCgsLHfGj/vSnP/HDDz/wzTffkJCQwHfffUef\nPn3clL5ru8nJyfW6PwZDg+OL1wfXDyD9X+xf06tLo6OyslL69u0r8+bNk9LSUqmoqJD//ve/DrPB\n+vXrJSEhQQ4dOiSff/65tGrVSvLy8kREm3dCQkJkwYIFUl5eLm+99ZZER0fLiRMnRETb9O+99145\ndeqUVFVVye7du2X9+vUiIvL2229Lamqqw6b/448/Omz6l112mSxcuNDRxwMHDkhycrKsXr1aKisr\npbS0VLKysiQ3N1dEtE3/17/+tVitVvn8888lKiqqRvPBt99+K6mpqfLVV1+JiEhRUZF8+OGHUlRU\n5HH/OXPmyPDhw6WgoEAOHjwovXr1OsO842qKqk2ezzzzjGRmZkpOTo6IiBw5ckRWrFghItqmHxkZ\nKf/+97/FarXKr371KzebvojIxo0bpUOHDhIVFeWQlyceffTRM2TgrW0RkRdffFGioqJk5syZIiLy\n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\n7gAAAABJRU5ErkJggg==\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x8de77410>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "score_log.plot(\"final\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 43, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Random session examples\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0xa84eb150>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "print(\"Random session examples\")\n", | |
| "display_sessions()\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Save learning curves" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 74, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import pickle\n", | |
| "\n", | |
| "lc = {'e-greedy':score_log['expected e-greedy reward'], 'greedy':score_log['expected greedy reward']}\n", | |
| "\n", | |
| "with open(str(epoch_counter-1)+'iter_lc.pickle', 'wb') as handle:\n", | |
| " lc = pickle.dump(lc, handle)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "source": [ | |
| "# Submission\n", | |
| "Here we simply run the OpenAI gym submission code and view scores" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 48, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "[]" | |
| ] | |
| }, | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "[monitor.close() for monitor in gym.monitoring._open_monitors()]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 49, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "resolver.epsilon.set_value(0)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 50, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "[2016-05-27 13:06:47,078] Making new env: MsPacman-v0\n", | |
| "[2016-05-27 13:06:47,106] Clearing 4 monitor files from previous run (because force=True was provided)\n" | |
| ] | |
| }, | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Episode finished after 674 timesteps\n", | |
| "Episode finished after 739 timesteps\n", | |
| "Episode finished after 585 timesteps\n", | |
| "Episode finished after 907 timesteps\n", | |
| "Episode finished after 992 timesteps\n", | |
| "Episode finished after 878 timesteps\n", | |
| "Episode finished after 1018 timesteps\n", | |
| "Episode finished after 915 timesteps\n", | |
| "Episode finished after 797 timesteps\n", | |
| "Episode finished after 581 timesteps\n", | |
| "Episode finished after 961 timesteps\n", | |
| "Episode finished after 926 timesteps\n", | |
| "Episode finished after 600 timesteps\n", | |
| "Episode finished after 575 timesteps\n", | |
| "Episode finished after 1214 timesteps\n", | |
| "Episode finished after 733 timesteps\n", | |
| "Episode finished after 1060 timesteps\n", | |
| "Episode finished after 962 timesteps\n", | |
| "Episode finished after 618 timesteps\n", | |
| "Episode finished after 896 timesteps\n", | |
| "Episode finished after 649 timesteps\n", | |
| "Episode finished after 464 timesteps\n", | |
| "Episode finished after 593 timesteps\n", | |
| "Episode finished after 939 timesteps\n", | |
| "Episode finished after 947 timesteps\n", | |
| "Episode finished after 1468 timesteps\n", | |
| "Episode finished after 884 timesteps\n", | |
| "Episode finished after 687 timesteps\n", | |
| "Episode finished after 875 timesteps\n", | |
| "Episode finished after 889 timesteps\n", | |
| "Episode finished after 440 timesteps\n", | |
| "Episode finished after 872 timesteps\n", | |
| "Episode finished after 618 timesteps\n", | |
| "Episode finished after 951 timesteps\n", | |
| "Episode finished after 722 timesteps\n", | |
| "Episode finished after 990 timesteps\n", | |
| "Episode finished after 945 timesteps\n", | |
| "Episode finished after 839 timesteps\n", | |
| "Episode finished after 595 timesteps\n", | |
| "Episode finished after 961 timesteps\n", | |
| "Episode finished after 857 timesteps\n", | |
| "Episode finished after 487 timesteps\n", | |
| "Episode finished after 990 timesteps\n", | |
| "Episode finished after 707 timesteps\n", | |
| "Episode finished after 712 timesteps\n", | |
| "Episode finished after 995 timesteps\n", | |
| "Episode finished after 923 timesteps\n", | |
| "Episode finished after 905 timesteps\n", | |
| "Episode finished after 1017 timesteps\n", | |
| "Episode finished after 762 timesteps\n", | |
| "Episode finished after 796 timesteps\n", | |
| "Episode finished after 1006 timesteps\n", | |
| "Episode finished after 698 timesteps\n", | |
| "Episode finished after 1164 timesteps\n", | |
| "Episode finished after 1026 timesteps\n", | |
| "Episode finished after 618 timesteps\n", | |
| "Episode finished after 776 timesteps\n", | |
| "Episode finished after 752 timesteps\n", | |
| "Episode finished after 723 timesteps\n", | |
| "Episode finished after 580 timesteps\n", | |
| "Episode finished after 734 timesteps\n", | |
| "Episode finished after 1014 timesteps\n", | |
| "Episode finished after 700 timesteps\n", | |
| "Episode finished after 589 timesteps\n", | |
| "Episode finished after 647 timesteps\n", | |
| "Episode finished after 875 timesteps\n", | |
| "Episode finished after 593 timesteps\n", | |
| "Episode finished after 611 timesteps\n", | |
| "Episode finished after 700 timesteps\n", | |
| "Episode finished after 785 timesteps\n", | |
| "Episode finished after 879 timesteps\n", | |
| "Episode finished after 1015 timesteps\n", | |
| "Episode finished after 797 timesteps\n", | |
| "Episode finished after 614 timesteps\n", | |
| "Episode finished after 1152 timesteps\n", | |
| "Episode finished after 518 timesteps\n", | |
| "Episode finished after 853 timesteps\n", | |
| "Episode finished after 616 timesteps\n", | |
| "Episode finished after 705 timesteps\n", | |
| "Episode finished after 608 timesteps\n", | |
| "Episode finished after 602 timesteps\n", | |
| "Episode finished after 805 timesteps\n", | |
| "Episode finished after 725 timesteps\n", | |
| "Episode finished after 762 timesteps\n", | |
| "Episode finished after 602 timesteps\n", | |
| "Episode finished after 762 timesteps\n", | |
| "Episode finished after 735 timesteps\n", | |
| "Episode finished after 1059 timesteps\n", | |
| "Episode finished after 781 timesteps\n", | |
| "Episode finished after 664 timesteps\n", | |
| "Episode finished after 610 timesteps\n", | |
| "Episode finished after 594 timesteps\n", | |
| "Episode finished after 979 timesteps\n", | |
| "Episode finished after 972 timesteps\n", | |
| "Episode finished after 632 timesteps\n", | |
| "Episode finished after 704 timesteps\n", | |
| "Episode finished after 710 timesteps\n", | |
| "Episode finished after 742 timesteps\n", | |
| "Episode finished after 856 timesteps\n", | |
| "Episode finished after 855 timesteps\n", | |
| "Episode finished after 612 timesteps\n", | |
| "Episode finished after 1007 timesteps\n", | |
| "Episode finished after 704 timesteps\n", | |
| "Episode finished after 1289 timesteps\n", | |
| "Episode finished after 656 timesteps\n", | |
| "Episode finished after 794 timesteps\n", | |
| "Episode finished after 812 timesteps\n", | |
| "Episode finished after 836 timesteps\n", | |
| "Episode finished after 887 timesteps\n", | |
| "Episode finished after 975 timesteps\n", | |
| "Episode finished after 796 timesteps\n", | |
| "Episode finished after 637 timesteps\n", | |
| "Episode finished after 793 timesteps\n", | |
| "Episode finished after 791 timesteps\n", | |
| "Episode finished after 634 timesteps\n", | |
| "Episode finished after 781 timesteps\n", | |
| "Episode finished after 585 timesteps\n", | |
| "Episode finished after 771 timesteps\n", | |
| "Episode finished after 1148 timesteps\n", | |
| "Episode finished after 632 timesteps\n", | |
| "Episode finished after 846 timesteps\n", | |
| "Episode finished after 795 timesteps\n", | |
| "Episode finished after 613 timesteps\n", | |
| "Episode finished after 771 timesteps\n", | |
| "Episode finished after 576 timesteps\n", | |
| "Episode finished after 984 timesteps\n", | |
| "Episode finished after 1103 timesteps\n", | |
| "Episode finished after 882 timesteps\n", | |
| "Episode finished after 722 timesteps\n", | |
| "Episode finished after 462 timesteps\n", | |
| "Episode finished after 909 timesteps\n", | |
| "Episode finished after 600 timesteps\n", | |
| "Episode finished after 732 timesteps\n", | |
| "Episode finished after 878 timesteps\n", | |
| "Episode finished after 607 timesteps\n", | |
| "Episode finished after 790 timesteps\n", | |
| "Episode finished after 736 timesteps\n", | |
| "Episode finished after 584 timesteps\n", | |
| "Episode finished after 610 timesteps\n", | |
| "Episode finished after 680 timesteps\n", | |
| "Episode finished after 1224 timesteps\n", | |
| "Episode finished after 876 timesteps\n", | |
| "Episode finished after 1562 timesteps\n", | |
| "Episode finished after 779 timesteps\n", | |
| "Episode finished after 652 timesteps\n", | |
| "Episode finished after 585 timesteps\n", | |
| "Episode finished after 782 timesteps\n", | |
| "Episode finished after 586 timesteps\n", | |
| "Episode finished after 851 timesteps\n", | |
| "Episode finished after 819 timesteps\n", | |
| "Episode finished after 938 timesteps\n", | |
| "Episode finished after 642 timesteps\n", | |
| "Episode finished after 720 timesteps\n", | |
| "Episode finished after 617 timesteps\n", | |
| "Episode finished after 463 timesteps\n", | |
| "Episode finished after 642 timesteps\n", | |
| "Episode finished after 642 timesteps\n", | |
| "Episode finished after 660 timesteps\n", | |
| "Episode finished after 1104 timesteps\n", | |
| "Episode finished after 690 timesteps\n", | |
| "Episode finished after 796 timesteps\n", | |
| "Episode finished after 1165 timesteps\n", | |
| "Episode finished after 588 timesteps\n", | |
| "Episode finished after 905 timesteps\n", | |
| "Episode finished after 455 timesteps\n", | |
| "Episode finished after 965 timesteps\n", | |
| "Episode finished after 590 timesteps\n", | |
| "Episode finished after 969 timesteps\n", | |
| "Episode finished after 596 timesteps\n", | |
| "Episode finished after 797 timesteps\n", | |
| "Episode finished after 1096 timesteps\n", | |
| "Episode finished after 648 timesteps\n", | |
| "Episode finished after 1152 timesteps\n", | |
| "Episode finished after 630 timesteps\n", | |
| "Episode finished after 599 timesteps\n", | |
| "Episode finished after 626 timesteps\n", | |
| "Episode finished after 496 timesteps\n", | |
| "Episode finished after 1041 timesteps\n", | |
| "Episode finished after 607 timesteps\n", | |
| "Episode finished after 697 timesteps\n", | |
| "Episode finished after 610 timesteps\n", | |
| "Episode finished after 795 timesteps\n", | |
| "Episode finished after 905 timesteps\n", | |
| "Episode finished after 464 timesteps\n", | |
| "Episode finished after 875 timesteps\n", | |
| "Episode finished after 738 timesteps\n", | |
| "Episode finished after 601 timesteps\n", | |
| "Episode finished after 694 timesteps\n", | |
| "Episode finished after 1074 timesteps\n", | |
| "Episode finished after 995 timesteps\n", | |
| "Episode finished after 572 timesteps\n", | |
| "Episode finished after 796 timesteps\n", | |
| "Episode finished after 805 timesteps\n", | |
| "Episode finished after 894 timesteps\n", | |
| "Episode finished after 465 timesteps\n", | |
| "Episode finished after 608 timesteps\n", | |
| "Episode finished after 820 timesteps\n", | |
| "Episode finished after 706 timesteps\n", | |
| "Episode finished after 1128 timesteps\n" | |
| ] | |
| }, | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "[2016-05-27 13:18:39,855] Finished writing results. You can upload them to the scoreboard via gym.upload('/tmp/AgentNet-simplenet-MsPacman-v0-Recording0')\n" | |
| ] | |
| }, | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Episode finished after 1089 timesteps\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "save_path = '/tmp/AgentNet-simplenet-MsPacman-v0-Recording0'\n", | |
| "\n", | |
| "subm_env = gym.make(GAME_TITLE)\n", | |
| "\n", | |
| "#starting monitor. This setup does not write videos\n", | |
| "subm_env.monitor.start(save_path,lambda i: False,force=True)\n", | |
| "\n", | |
| "#this setup does\n", | |
| "#subm_env.monitor.start(save_path,force=True)\n", | |
| "\n", | |
| "\n", | |
| "for i_episode in xrange(200):\n", | |
| " \n", | |
| " #initial observation\n", | |
| " observation = subm_env.reset()\n", | |
| " #initial memory\n", | |
| " prev_memories = \"zeros\"\n", | |
| " \n", | |
| " \n", | |
| " t = 0\n", | |
| " while True:\n", | |
| "\n", | |
| " action,new_memories = step([observation],prev_memories,batch_size=1)\n", | |
| " observation, reward, done, info = subm_env.step(action[0])\n", | |
| " \n", | |
| " prev_memories = new_memories\n", | |
| " if done:\n", | |
| " print \"Episode finished after {} timesteps\".format(t+1)\n", | |
| " break\n", | |
| " t+=1\n", | |
| "\n", | |
| "subm_env.monitor.close()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "gym.upload(save_path,\n", | |
| " \n", | |
| " #this notebook\n", | |
| " writeup=<url to my gist>, \n", | |
| " \n", | |
| " #your api key\n", | |
| " api_key=<my_own_api_key>)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "source": [ | |
| "# Once you got it working,\n", | |
| "Try building a network that maximizes the final score\n", | |
| "\n", | |
| "* Moar lasagne stuff: convolutional layers, batch normalization, nonlinearities and so on\n", | |
| "* Recurrent agent memory layers, GRUMemoryLayer, etc\n", | |
| "* Different reinforcement learning algorithm (p.e. agent-critic), other parameters\n", | |
| "* Experience replay pool\n", | |
| "\n", | |
| "\n", | |
| "Look for examples? Try examples/Deep Kung Fu for most of these features\n", | |
| "\n", | |
| "\n", | |
| "You can also try to expand to a different game: \n", | |
| " * all OpenAI Atari games are already compatible, you only need to change GAME_TITLE\n", | |
| " * Other discrete action space environments are also accessible this way\n", | |
| " * For continuous action spaces, either discretize actions or use continuous RL algorithms (e.g. .learning.dpg_n_step)\n", | |
| " * Adapting to a custom non-OpenAI environment can be done with a simple wrapper\n", | |
| "\n", | |
| " \n", | |
| "__Good luck!__" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 79, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "gym.upload?" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 2", | |
| "language": "python", | |
| "name": "python2" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment