GithubHelp home page GithubHelp logo

quentinncl / devfest2018 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from valeuriad/devfest2018

0.0 1.0 0.0 32.92 MB

Sources & Ressources DevFest Nantes 2018

Dockerfile 1.48% R 53.71% Python 19.77% Rebol 0.46% JavaScript 1.63% TypeScript 20.53% HTML 1.42% CSS 1.00%

devfest2018's Introduction

Devfest 2018, Valeuriad

Sources & Ressources du talk AI Takeover du DevFest Nantes 2018

game_logic

Contient les sources relatives à l'entraînement et au run du bot et du moteur de jeu.

Sources

  1. src/train_ruler.py : entraîne un nouveau moteur de jeu (autorise ou non les déplacements, retourne les codes de victoire & défaite)
  2. src/app_ruler.py : web service flask exposant le modèle du moteur de jeu et la map (rentrée en dur à partir d'une des 3 maps stockées au format RDS dans data/ ) sur le port 5000
  3. src/rldql.R : script R permettant d'entraîner un nouveau bot via deep q learning
  4. src/Agent.R : script R contenant la logique de l'agent (le bot) & exposant une api permettant de requeter son prochain mouvement en fonction de l'état de la map
  5. src/mapGeneration.R : script R permettant de faire tourner un algo génétique pour générer une nouvelle map
  6. run_bot.R : script R permettant d'exposer l'api de Agent.R derrière un webservice (via plumber)

Données

game_logic/data contient 3 maps générées par l'algo génétique ainsi qu'un modèle de deep q learning contrôlant le comportement du bot. game_logic/img contient une illustration du comportement du bot.

graphes

Contient le script R permettant de générer des graphiques au format xkcd. Pourquoi ? Parce qu'on peut.

graphics

Contient les scripts python permettant de faire tourner un GAN. Un ACGAN a également été essayé.

  1. data/proc contient les données sérialisées des différents sprites qui ont été scrapés (block: les blocks ;), gm: ghost monster, pacman : pacman, pg: pacman ghost, tiles: tiles)
  2. img/ contient quelques exemples d'images générées
  3. src/scraper.py : permet de scraper des images sur google image (python scraper.py -s pacman -n 200 -d path/to/download)
  4. scr/scraper.R : script R permettant de lancer scraper.py et de pré-processer les images (resize en 28x28 grayscale et 28x28 color; passage du background en blanc; normalisation des différents color channel) et sérialise les images dans data/proc (data.dat = grayscale, cdata.dat = color)
  5. src/acgan.R & src/gan.R sont des scripts R permettant de faire tourner un gan ou un gan conditionnel directement à partir des données contenues dans data/proc
  6. src/acgan/acgan.py et gan.py sont les équivalents python, c'est le gan.py qui a été utlisé pour les images présentées lors du talk. Les deux se basent non pas sur les données .RDS (format R) mais sur les données .csv
  7. src/cdata_to_csv.R : script R permettant de transformer les données RDS (cdata.dat) au format csv (pour lecture sous python: /!\ pandas & R n'utilisent pas le même ordonnancement des données matricielles)

pacman-ai

Projet angular contenant l'UI du jeu

Docker

Le projet peut être lancé via un container docker.

Depuis Dockerhub :

docker pull valeuriad/pacman
docker run -p 4242:4242 -p 5000:5000 -p 4200:4200 valeuriad/pacman 

Build :

docker build -t pacman-ai .
docker run -p 4242:4242 -p 5000:5000 -p 4200:4200 pacman-ai

devfest2018's People

Watchers

Quentin Nicolle 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.