Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Have guidelines about developing Gluon API for JVM langs.
    • Any new JNI binding development needs to go into the Scala package first to avoid divergence and packaging issues in other packages.
    • If a contributor wants to add a package to the Clojure package first (for example https://mxnet.incubator.apache.org/api/python/gluon/model_zoo.html) that doesn't touch the JNI bindings, that development can happen in Clojure first and then when it arrives in the Scala package can be converted over if desired to have a single implementation. This will allow some decoupling of development.
    • The API should follow as closely as possible to the Gluon API and live under the same namespace.
      • Example: The model zoo API in the Clojure package would be  org.apache.clojure-mxnet.gluon.model-zoo
    • Use the existing code when possible to build out the Gluon API.
    • If implementing gluon.model.zoo or gluon.data before core functionality, have it work with existing module code.

Questions

  • Autograd is an interesting area. Currently there are no good JVM autograd options. To get this to work would be exciting for many users. But need to look into how it could actually work.

TODO: Gluon API Analysis 

Gluon packageDescriptionCommentsCan be supported with current JNI?Covered in Dive into Deep Learning?BenefitEffort
gluon.baseBase Package

Dynamic Graph support?

Autograd

?Just about everywhere

gluon.model_zooProvides pre-defined and pre-trained models to help bootstrap machine learning applications
yes


HighLow
gluon.dataProvides useful dataset loading and processing tools, as well as common public datasets.



gluon.lossCommonly used loss functions in neural networks



gluon.nnNeural network blocks 



gluon.rnnRecurrent neural network API



gluon.contribProvides many useful experimental APIs for new features.

None

...