Code Monkey home page Code Monkey logo

deeplearningresearch's Introduction

Hi there ๐Ÿ‘‹ This is Di, nice to meet you.

About me

  • ๐Ÿ’ผ Full Stack Software Engineer at Microsoft
  • ๐Ÿ“ˆ Part-time Quant Trader
  • ๐Ÿ˜„ I love hacking stuff
  • ๐ŸŒฑ Iโ€™m currently learning Distributed Storage System and Financial Engineering.
  • ๐Ÿ“ซ How to reach me: [email protected]
  • โšก Fun fact:
    • ๐Ÿ“– I have a blog, feel free to check it out: chendi.me
    • ๐Ÿ‘ฏ I list some side project I want to build, looking for collaboration: chenditc/idea_collection
  • ๐Ÿ’ฌ Ask me about anything here

chendi's GitHub stats

Top Langs

deeplearningresearch's People

Contributors

chenditc avatar

Watchers

 avatar  avatar  avatar

deeplearningresearch's Issues

Build Model Loader and Model Saver

Model Loader should be able to load and existing trained model or a empty model. Requirement:

  1. Create a Database that store the parameter of models. Eg. If it's mlp, it should store the layer number, the matrix, and the computation formula.
  2. Each model should have a function called: LoadModel(key). This should be able to load the from database and perform prediction.
  3. Each model should have a function called: SaveModel(key). This should be able to serialize the parameter to database.
  4. Each model should have a function called InitModel(key). This should be able to random initialize the parameter and register it on database.

Separate training and testing phase

Training the data should be:
./train --model mlp --data macd --key mlp_macd2

  1. This should automatically read the training data from database and all rows should have key macd.
  2. The parameters for each layer should also be stored in the database, so we can restore the model later.
  3. The model should self contain all the parameter we want to tweak, like, alpha, patience, and etc.

Testing the data should be:
./test --model --key mlp_macd2 [--doc test_data]

  1. If no test_data specified, it should read from stdin
  2. If test_data specified, it should read the test_data and output a list of prediction

Multi-layer Perceptron

Add a new module to Learning model called MultilayerPerceptron.

  1. The layer should be able to change as configuration changes
  2. The number of neural for each layer should be able to change.

Build Trainer Class

To train a model, we need to specify a list of parameters, like number of epoch, mini-batch size, patient, L1 L2 regularization. So we want to have a trainer class:

  1. Have a method called Load(key) that load all parameters like number of epoch, mini-batch size, patient, L1 L2 regularization.
  2. Have a method called InitTrainer() this will initialize a set of training parameters, it can register it to database or not.
  3. Have a method called trainModel(modelInstance). This will take the model and train it with necessary steps and call saveModel to save the model after each best approach.

Use multi-thread and queue to increase the speed of upload and download the data.

Use multi-thread and queue to increase the speed of upload and download the data.

  1. For downloaded data, there should be a queue that keep fetching database to full it self up. This should happen in a separate thread, maybe a separate class
  2. For upload data, there should be a queue to do this too.

This has lower priority than the model implementation.

Convolutional Neural Net

Add a model called ConvolutionalNN:

  1. We should be able to specify how many convolutional layer we want to have
  2. We should be able to specify how large is each layer.
  3. We should be able to specify the scan window

Build Data Loader and Data Loader's DB

Requirement:

  1. Have one database that contains the data for training. Each table contains one category of data. Eg. Macd, Mav, etc.
  2. Have a python module:
    a) load_data() Take data set name (table name), data key (version of data), and the number of data entry needed. Return a matrix of data. Each row is one training entry.
    b) *get_data_parameter() Get data's metadata, Eg. dimensionality, mean, std and etc.

Store data's meta data for each data set

To pre-processing the data, we need to know some meta data, e.g. dimensionality, mean, std and etc.
It will be computational expensive to compute them when training happens. So we need some process to pre-compute meta data and keep consistent as data set updated.

b) *get_data_parameter() Get data's metadata, Eg. dimensionality, mean, std and etc.

Build Online tester

The online tester should be able to load the model and use the model to compute the prediction on fly. So it should take 1. model name, 2. parameter name 3. input from stdin and print prediction to stdout

Recurrent Neural Network

Add a new Module Called RecurrentNN:

  1. We should be able to specify the number of unit in the recurrent layer
  2. We should be able to specify the layer of recurrent layer.

ps. I think we can reuse the multilayer perceptron for this, just link the output and input together

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.