Giter VIP home page Giter VIP logo

42.walking_marvin's Introduction

42 US - Silicon Valley

Walking Marvin

Who is Marvin?

Marvin, the Paranoid Android, is a fictional character in The Hitchhiker's Guide to the Galaxy series by Douglas Adams. Marvin is the ship's robot aboard the starship Heart of Gold.

Goals

This is a python project, that uses OpenAI Gym with an environment called Marvin. The goal is to train Marvin to walk, having the training and walking process. The total reward for each episode after training is bigger than 100. During the development, we learned how to use neural networks to help Marvin get back on his feet, without using any libraries that do the goal of the project for us, like Evostra or Tensorflow.

Walking Process

Usage

Basic form:

python marvin.py

The program display log for each episode.

Advanced options:

Flags Description
–-walk (-w) Display only walking process.
–-video (-v) Saves videos of the walking process.
–-name (-n) Display the name of the game (environment).
--generation (-g) Change the maximum number of generations.
--population (-p) Count of the population between each generation.
--rate (-r) Mutation rate (recommended values in the range of decimals).
--movement (-m) umber of steps (movement) between each episode.
–-load (-l) Load weights for Marvin agent from a file. Skip training process if this option is specified.
–-save (-s) Save weights to a file after running the program.
–-quiet (-q) Hide the program's log between each episode.
–-help (-h) Display available commands and exit.
–-log Save a log of each generation to a file. Expects a path.
–-version Show program's version number and exit.

If the program launches without arguments, display training process and walking process.

Setup

Use sh setup.sh to setup and build all the dependencies.

All the dependencies will be installed to the user by running the script...

TODO

  • Make use of the average fitness of a generation, so it doesn't deviate from the parent.
  • Check if by changing code from the source file can interfere with loading the file (of a different version of the program). If it does, create some kind of flag to validate the version.

Resources

The following sources helped us during the development of this project:

Contributors

License

This project is under the MIT License.

42.walking_marvin's People

Contributors

corezip avatar jraleman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.