cavis/deeplearning4j
Andrii T d86dd5b131
DL4J and SameDiff integration tests + LSTMLayer java op class (#353)
* init in this branch

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* Lenetet Mnist workflow

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* small fix for calculations

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* for Alex to check placeholder null pointer issue

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* CNN3D workflow

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* state for launching on dxg to regenterate dl4j examples

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* SD RNN test case workflow

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* small fixes

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* checkpoint at lstmBlock: Input array 1 (x) rank must be got input with rank 2 issue

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* Fix LSTMLayer inputs order

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* lstm mismatch with c++ op issue

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* LSTMLayer config draft

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* LSTMLayer config draft v2

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* have doubt I had to do this

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* NDRNN generated by codegen

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* LSTMLayerTestCases draft

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* minor fixes again

* added LSTMLayer testcases to nd4j-tests + setted Preconditions in LSTMLayer constructors

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* added lost SDCNNtestcases

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* overrided getNumOutputs from DynamicCustomOp in LSTMLayer and reorganized LSTMLayerOutputs according to cpp op

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* finished with LSTMLayerOutputs

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* Fix MKLDNN platform checks (i.e., when MKLDNN can be used vs. not)

Signed-off-by: Alex Black <blacka101@gmail.com>

* Fix LSTMLayerWeights input order

Signed-off-by: Alex Black <blacka101@gmail.com>

* More fixes

Signed-off-by: Alex Black <blacka101@gmail.com>

* minor fixes

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* fixed LSTMLayer testcases

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* finished SameDiffRNNTestCase

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* finished all testcases + minor fixes

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* Multiple generation-related fixes

Signed-off-by: Alex Black <blacka101@gmail.com>

* Fix multiple issues

Signed-off-by: Alex Black <blacka101@gmail.com>

* More fixes

Signed-off-by: Alex Black <blacka101@gmail.com>

* LSTM fixes

Signed-off-by: Alex Black <blacka101@gmail.com>

* Regenerate ND4J namespaces and fix multiple issues

Signed-off-by: Alex Black <blacka101@gmail.com>

* changed SameDiffRNNTestCase

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* Small fix

Signed-off-by: Alex Black <blacka101@gmail.com>

* added  Nd4j.getRandom().setSeed(12345) where needed

Signed-off-by: Andrii Tuzhykov <andrewtuzhykov@gmail.com>

* #8828 Fix ND4J profiler NaN/Inf checks when using OpContext

Signed-off-by: Alex Black <blacka101@gmail.com>

* #8828 Fix ND4J profiler NaN/Inf checks when using OpContext

Signed-off-by: Alex Black <blacka101@gmail.com>

* Tweak to weight init for SameDiff CNN test case

Signed-off-by: Alex Black <blacka101@gmail.com>

* Tweaks for test cases

Signed-off-by: Alex Black <blacka101@gmail.com>

* Ignore failing tests until fixed

Signed-off-by: Alex Black <blacka101@gmail.com>

* Fix

Signed-off-by: Alex Black <blacka101@gmail.com>

Co-authored-by: Alex Black <blacka101@gmail.com>
2020-04-09 00:20:48 +10:00
..
ci Eclipse Migration Initial Commit 2019-06-06 15:21:15 +03:00
contrib Eclipse Migration Initial Commit 2019-06-06 15:21:15 +03:00
deeplearning4j-common Add support for CUDA 10.2 (#89) 2019-11-29 16:31:03 +11:00
deeplearning4j-common-tests DL4J integrations tests updates + add SameDiff support (#298) 2020-03-07 22:44:41 +11:00
deeplearning4j-core Fix incompatibilities with generated code (#303) 2020-04-01 12:00:38 +11:00
deeplearning4j-cuda Small fixes. (#206) 2020-02-01 18:19:36 +11:00
deeplearning4j-data Assorted fixes (#318) 2020-03-27 00:33:13 +11:00
deeplearning4j-dataimport-solrj Small number of test fixes (#220) 2020-02-07 18:38:50 +11:00
deeplearning4j-graph Test fixes + cleanup (#245) 2020-02-18 10:29:06 +11:00
deeplearning4j-manifold Various fixes (#143) 2020-01-04 13:45:07 +11:00
deeplearning4j-modelexport-solr Small number of test fixes (#220) 2020-02-07 18:38:50 +11:00
deeplearning4j-modelimport Merge remote-tracking branch 'eclipse/master' 2020-03-30 22:18:25 +11:00
deeplearning4j-nearestneighbors-parent Fixes (#213) 2020-02-05 17:07:36 +11:00
deeplearning4j-nlp-parent Assorted fixes (#318) 2020-03-27 00:33:13 +11:00
deeplearning4j-nn DL4J and SameDiff integration tests + LSTMLayer java op class (#353) 2020-04-09 00:20:48 +10:00
deeplearning4j-remote Fix incompatibilities with generated code (#303) 2020-04-01 12:00:38 +11:00
deeplearning4j-scaleout Assorted fixes (#318) 2020-03-27 00:33:13 +11:00
deeplearning4j-ui-parent Fix incompatibilities with generated code (#303) 2020-04-01 12:00:38 +11:00
deeplearning4j-zoo Small number of test fixes (#220) 2020-02-07 18:38:50 +11:00
dl4j-integration-tests DL4J and SameDiff integration tests + LSTMLayer java op class (#353) 2020-04-09 00:20:48 +10:00
.codeclimate.yml Eclipse Migration Initial Commit 2019-06-06 15:21:15 +03:00
.travis.yml Eclipse Migration Initial Commit 2019-06-06 15:21:15 +03:00
CONTRIBUTORS.md Eclipse Migration Initial Commit 2019-06-06 15:21:15 +03:00
GITTER_GUIDELINES.md Update links to eclipse repos (#252) 2019-09-10 19:09:46 +10:00
LICENSE.txt Eclipse Migration Initial Commit 2019-06-06 15:21:15 +03:00
README.md Update links to eclipse repos (#252) 2019-09-10 19:09:46 +10:00
buildmultiplescalaversions.sh Eclipse Migration Initial Commit 2019-06-06 15:21:15 +03:00
pom.xml Fixes (#213) 2020-02-05 17:07:36 +11:00

README.md

Eclipse Deeplearning4J: Neural Networks for Java/JVM

Join the chat at https://gitter.im/deeplearning4j/deeplearning4j Maven Central Javadoc

Eclipse Deeplearning4J is part of the Skymind Intelligence Layer, along with ND4J, DataVec, Arbiter and RL4J. It is an Apache 2.0-licensed, open-source, distributed neural net library written in Java and Scala. By contributing code to this repository, you agree to make your contribution available under an Apache 2.0 license.

Deeplearning4J integrates with Hadoop and Spark and runs on several backends that enable use of CPUs and GPUs. The aim is to create a plug-and-play solution that is more convention than configuration, and which allows for fast prototyping.

The most recent stable release in Maven Central is 0.9.1, and the current master on Github can be built from source.

For more info, see: https://docs.skymind.ai/docs


Using Eclipse Deeplearning4j

To get started using Deeplearning4j, please go to our Quickstart. You'll need to be familiar with a Java automated build tool such as Maven and an IDE such as IntelliJ.

Main Features

  • Versatile n-dimensional array class
  • GPU integration (supports devices starting from Kepler, cc3.0. You can check your device's compute compatibility here.)

Modules

  • datavec = Library for converting images, text and CSV data into format suitable for Deep Learning
  • nn = core neural net structures MultiLayer Network and Computation graph for designing Neural Net structures
  • core = additional functionality building on deeplearning4j-nn
  • modelimport = functionality to import models from Keras
  • nlp = natural language processing components including vectorizers, models, sample datasets and renderers
  • scaleout = integrations
    • spark = integration with Apache Spark versions 1.3 to 1.6 (Spark 2.0 coming soon)
    • parallel-wraper = Single machine model parallelism (for multi-GPU systems, etc)
    • aws = loading data to and from aws resources EC2 and S3
  • ui = provides visual interfaces for tuning models. Details here

Documentation

Documentation is available at deeplearning4j.org and JavaDocs. Open-source contributors can help us improve our documentation for Deeplearning4j by sending pull requests for the DL4J website here

Support

We are not supporting Stackoverflow right now. Github issues should focus on bug reports and feature requests. Please join the community on Gitter, where we field questions about how to install the software and work with neural nets. For support from Skymind, please see our contact page.

Installation

To install Deeplearning4J, see our Quickstart and below. More information can be found on the ND4J web site as well as here.

Use Maven Central Repository

Search Maven Central for deeplearning4j to get a list of dependencies.

Add the dependency information to your pom.xml file. We highly recommend downloading via Maven unless you plan to help us develop DL4J. An easy way to get up-to-date dependencies is to use the ones listed in our dl4j-examples POM.


Contribute

  1. Check for open issues or open a fresh one to start a discussion around a feature idea or a bug.
  2. If you feel uncomfortable or uncertain about an issue or your changes, don't hesitate to contact us on Gitter using the link above.
  3. Fork the repository on GitHub to start making your changes (branch off of the master branch).
  4. Write a test that shows the bug was fixed or the feature works as expected.
  5. Note the repository follows the Google Java style with two modifications: 120-char column wrap and 4-spaces indentation. You can format your code to this format by typing mvn formatter:format in the subproject you work on, by using the contrib/formatter.xml at the root of the repository to configure the Eclipse formatter, or by using the Intellij plugin.
  6. Send a pull request and bug us on Gitter until it gets merged and published. :)
  7. Add technical documentation on the Deeplearning4j website and fix any typos you see.