Skip to content

keRas For Deep Convolutional Neural Networks

Angira Sharma edited this page Mar 21, 2017 · 19 revisions

Background

R does not have a high level modeling language for designing neural networks. Keras and it’s implementations over Tensorflow and Theano has rich semantics and scalability

Related work

  • keras is a python package for that.
  • TensorFlow also is a good candidate - TF 1.0 has Keras as well as Layers that abstract neural networks. TF 1.0 also has C++ interfaces
  • Last year we had proposed a package DeepLearnR. DeepLearnR uses skflow over an older version of Tensorflow. Now Keras has matured to be the abstraction layer for Tensorflow. And Keras supports Theano, so keRas is a good package for R
  • R Studio for Tensorflow has done a good job wrapping the python Tensorflow API. We could follow their ideas and do the same for Keras

Details of your coding project

Could we port keras in the 3-month deadline? What functions? What do they do? Docs? Tests? Vignettes?

Suggestions:

  1. Start with a limited well chosen abstractions say Convolutional Networks and LSTM. Make sure we can do a good job implementing them and testing with datasets like the MNIST, Pascal VOC.
  2. Extend to domains - financial, object detection et al

Expected impact

Interfaces to scalable deep learning frameworks, that work on CPUs as well as GPUs, is an essential capability to the R community. The bigger idea for the keRas package is to create a complete “wrapper” for AI/DeepLearning, probably starting with rPython eventually with rcpp as the c++ layer gets more richer interfaces.

Mentors

Krishna Sankar ([@](mailto:ksankar42 {at} gmail {dot} com))

Tomasz Melcer

Each project needs 2 mentors. One should be an expert R programmer with previous package development experience, and the other can be a domain expert in some other field or application area (optimization, bioinformatics, machine learning, data viz, etc). Ideally one of the two mentors should have previous experience with GSOC (either as a student or mentor).

Tests

Easy

  1. Install any Keras and Tensorflow and run a few examples.
    • What are the results ?
    • What difficulties, if any, did you face installing the package ?
  2. Change the data in the examples and show the results
    • You might have to tweak the learning rate and the epochs/steps
    • If you tweak the hyperparameters, show the results of the numbers you tried

Medium

  1. Write an R function that creates a machine learning model and returns the results
    • You can choose your favorite model and a dataset
    • The function should have hyperparameters (appropriate to your model) that can be tweaked
  2. Write a model in python using TensorFlow or Keras
    • On your own, don’t use the examples already on the net or part of tutorials

Hard

  1. Develop a small R package (say a new sumx function that adds two numbers and returns the result in a hex string)
  2. Add all the required elements to pass R CMD check –as-cran <your package>

Solutions of tests

Students, please post a link to your test results here.

Angira Sharma:1.simple neural net and DCNN in python using keras 2.RESUME

Abhinav Choudhury: https://github.com/abhinavchdhry/G-means-clustering

Abhinav Gupta: https://github.com/abhinavg267/test

Wazeer Zulfikar: https://github.com/wazeerzulfikar/sumx - R package for sumx function, passes R CMD check.

Wazeer Zulfikar: https://github.com/wazeerzulfikar/traffic-signs-recognition - Multi Scale CNN for image recognition using Keras

Harshita Jhavarhttps://github.com/harshitaJhavar/Neural-Networks-and-its-Applications-Deep-Learning- Harshita Jhavar https://github.com/harshitaJhavar/Statistics-with-R

Ayan Sengupta: https://github.com/victor7246/R-keras-project-tests

Clone this wiki locally