Coder Social home page Coder Social logo

shaynali / aipen Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 2.0 2.86 MB

Evolutionary engine for easier hyper-parameter optimization of AI and ML models.

Python 69.44% JavaScript 15.14% CSS 3.60% HTML 11.82%
machine-learning artificial-intelligence evolutionary hyperparameter-optimization

aipen's Introduction

Aipen

master

Build Status

dev

Build Status

aipen's People

Contributors

bcdicicco avatar lord-zer0 avatar rsharma1996 avatar shaynali avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

bcdicicco

aipen's Issues

Documentation

Document original, undocumented code in the repo's GitHub wiki.

Initial data module

Management of data storage and ids
Should interface with visualization module and use numpy types as underlying data storage

Logger is bugged (pre-rollback)

Bugs:

  • Does not log to arena and build logs
  • Does not give console output for build tests
  • Does not log to absolute location of log (known behavior, needs modification)

Model serialization

Add option for save and load to/from pickled file and JSON/other readable file format.

Initial visualization module

Write some basic visualization processes using an appropriate third party library. Should be as decoupled from third party library as possible so we can switch to another if needed.

Visualization module extensions

A follow up to #10 to explore enhancements to the visualization module.

Some other options which are interactive, and could be good for the presentation:

Also see visualization libraries discussed originally in #10.

Data processing

Following up to #8, add processing functions such as padding, noise reduction, transforms, etc as they are needed

Set up Travis CI

This task relates to the test coverage tasks and involves setting up the .travis.yml file to integrate with Travis CI and set up any related testing scripts.

Command option parsing

Should add cmd line options and parsing, so that the user can have a rich way of choosing how modules run, what the console outputs (e.g. listen to evaluation log instead), if a log outputs to a new console, etc.

See #15 and #40.

Consider using Click.

Refactor and clean up

Various bits of code, especially in the arena code should be clean up and refactored, renaming as required and breaking apart functionality.

Fix gitkeeps

The line !**.gitkeep in .gitignore does not serve to maintain empty folders (e.g. the logging folder), so either this should be fixed or else a utils file should be created to manage path and file creation.

Logging tests

Test that log functionality works by expected, can use a special log channel

Should conform with system being developed in #5

Problem and agent/model abstracts

Implement MLProblem and AgentProblem (and come up with a better name if you can) plus at least one implementation of each, based on a toy problem.

Consider making SupervisedProblem and UnsupervisedProblem interfaces with slightly difference APIs.

Recommend implementing noisy linear data fitting for MLProblem and Battleship for AgentProblem.

Add option to open live logs as subprocesses/etc

Instead of a single log monopolizing the console, we should have an option for logs to open consoles in other windows which listen to them (e.g. an arena console window, an evaluation console window, ...)

Initial data generation

Write a data generation module capable of generating simple bits of data, e.g. random, linear with noise

Parameter parameterization

Add dict/function/etc for parameters (for learning) and hyper-parameters (for evolution) to models. Allows learning optimizers and evolutionary engine to spawn models better than random.

Data generation

Follow up to initial data generation module, grabbing data from actual sources/problems/etc

Should include an id system, even if it's just an initial implementation. Could use in-memory sqlite3.

Cloud API and web interface

Allow Aipen to be accessed as a web API with a web interface, so that users can provide data and run evolutionary algorithms online without installing anything.

Logging channels

Fix console_logging=True behavior (locks out other logs).

Implement a source -> channel -> listener system for logging.

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.