Giter VIP home page Giter VIP logo

deeplearning4j / deeplearning4j-docs Goto Github PK

View Code? Open in Web Editor NEW
50.0 50.0 43.0 145.6 MB

Documentation for Deeplearning4j - Deep Learning for the JVM, Java & Scala

License: Apache License 2.0

HTML 99.87% CSS 0.08% JavaScript 0.01% Ruby 0.01% Shell 0.01% SCSS 0.03%
deep-learning deep-neural-networks deeplearning4j documentation gh-pages machine-learning machine-learning-algorithms machine-learning-library machinelearning

deeplearning4j-docs's Introduction

Documentation Get help at the community forum javadoc javadoc License GitHub commit activity

The Eclipse Deeplearning4J (DL4J) ecosystem is a set of projects intended to support all the needs of a JVM based deep learning application. This means starting with the raw data, loading and preprocessing it from wherever and whatever format it is in to building and tuning a wide variety of simple and complex deep learning networks.

Because Deeplearning4J runs on the JVM you can use it with a wide variety of JVM based languages other than Java, like Scala, Kotlin, Clojure and many more.

The DL4J stack comprises of:

  • DL4J: High level API to build MultiLayerNetworks and ComputationGraphs with a variety of layers, including custom ones. Supports importing Keras models from h5, including tf.keras models (as of 1.0.0-beta7) and also supports distributed training on Apache Spark
  • ND4J: General purpose linear algebra library with over 500 mathematical, linear algebra and deep learning operations. ND4J is based on the highly-optimized C++ codebase LibND4J that provides CPU (AVX2/512) and GPU (CUDA) support and acceleration by libraries such as OpenBLAS, OneDNN (MKL-DNN), cuDNN, cuBLAS, etc
  • SameDiff : Part of the ND4J library, SameDiff is our automatic differentiation / deep learning framework. SameDiff uses a graph-based (define then run) approach, similar to TensorFlow graph mode. Eager graph (TensorFlow 2.x eager/PyTorch) graph execution is planned. SameDiff supports importing TensorFlow frozen model format .pb (protobuf) models. Import for ONNX, TensorFlow SavedModel and Keras models are planned. Deeplearning4j also has full SameDiff support for easily writing custom layers and loss functions.
  • DataVec: ETL for machine learning data in a wide variety of formats and files (HDFS, Spark, Images, Video, Audio, CSV, Excel etc)
  • LibND4J : C++ library that underpins everything. For more information on how the JVM acceses native arrays and operations refer to JavaCPP
  • Python4J: Bundled cpython execution for the JVM

All projects in the DL4J ecosystem support Windows, Linux and macOS. Hardware support includes CUDA GPUs (10.0, 10.1, 10.2 except OSX), x86 CPU (x86_64, avx2, avx512), ARM CPU (arm, arm64, armhf) and PowerPC (ppc64le).

Community Support

For support for the project, please go over to https://community.konduit.ai/

Using Eclipse Deeplearning4J in your project

Deeplearning4J has quite a few dependencies. For this reason we only support usage with a build tool.

<dependencies>
  <dependency>
      <groupId>org.deeplearning4j</groupId>
      <artifactId>deeplearning4j-core</artifactId>
      <version>1.0.0-M2.1</version>
  </dependency>
  <dependency>
      <groupId>org.nd4j</groupId>
      <artifactId>nd4j-native-platform</artifactId>
      <version>1.0.0-M2.1</version>
  </dependency>
</dependencies>

Add these dependencies to your pom.xml file to use Deeplearning4J with the CPU backend. A full standalone project example is available in the example repository, if you want to start a new Maven project from scratch.

Code samples

Due to DL4J being a multi faceted project with several modules in the mono repo, we recommend looking at the examples for a taste of different usages of the different modules. Below we'll link to examples for each module.

  1. ND4J: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/nd4j-ndarray-examples
  2. DL4J: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/dl4j-examples
  3. Samediff: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/samediff-examples
  4. Datavec: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/data-pipeline-examples
  5. Python4j: https://deeplearning4j.konduit.ai/python4j/tutorials/quickstart

For users looking for being able to run models from other frameworks, see:

  1. Onnx: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/onnx-import-examples
  2. Tensorflow/Keras: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/tensorflow-keras-import-examples

Documentation, Guides and Tutorials

You can find the official documentation for Deeplearning4J and the other libraries of its ecosystem at http://deeplearning4j.konduit.ai/.

Want some examples?

We have separate repository with various examples available: https://github.com/eclipse/deeplearning4j-examples

Building from source

It is preferred to use the official pre-compiled releases (see above). But if you want to build from source, first take a look at the prerequisites for building from source here: https://deeplearning4j.konduit.ai/multi-project/how-to-guides/build-from-source. Various instructions for cpu and gpu builds can be found there. Please go to our forums for further help.

Running tests

In order to run tests, please see the platform-tests module. This module only runs on jdk 11 (mostly due to spark and bugs with older scala versions + JDK 17)

platform-tests allows you to run dl4j for different backends. There are a few properties you can specify on the command line:

  1. backend.artifactId: this defaults to nd4j-native and will run tests on cpu,you can specify other backends like nd4j-cuda-11.6
  2. dl4j.version: You can change the dl4j version that the tests run against. This defaults to 1.0.0-SNAPSHOT.

More parameters can be found here:

<platform.classifier>${javacpp.platform}</platform.classifier>

Running project in Intellij IDEA:

  1. Ensure you follow https://stackoverflow.com/questions/45370178/exporting-a-package-from-system-module-is-not-allowed-with-release on jdk 9 or later
  2. Ignore all nd4j-shade submodules. Right click on each folder and click: Maven -> Ignore project

License

Apache License 2.0

Commercial Support

Deeplearning4J is actively developed by the team at Konduit K.K..

[If you need any commercial support feel free to reach out to us. at [email protected]

deeplearning4j-docs's People

Contributors

agibsonccc avatar alexdblack avatar robaltena avatar skymindops avatar treo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deeplearning4j-docs's Issues

Update links broken by mono-repo migration

Links to source code files (such as those used in the quickref) would have been broken by the recent move to mono-repo, due to DL4J being moved to a sub-directory.
Furthermore, anything that isn't DL4J needs to be updated as the source is now in the mono repo (such links will still work, but will become outdated over time).

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Android Documentation

To be assigned to @jrmerwin when collaborator invite is accepted.

Overview:

Prerequisites
Required Dependencies
Managing Dependencies with ProGuard
Memory Management
Saving and Loading Networks on Android

Setting the Dependencies
Setting up the neural network on a background thread
Preparing the training data set and user input
Building and Training the Neural Network
Updating the UI
Conclusion

Setting the Dependencies
Training and loading the Mnist model in the Android project resources
Accessing the trained model using an AsyncTask
Handling images from user input
Updating the UI
Conclusion

DataVec: ImageTransform documentation

It would be nice to have a page showing the functionality available in imageTransform
https://deeplearning4j.org/datavecdoc/org/datavec/image/transform/ImageTransform.html

Migrated from: https://github.com/deeplearning4j/DataVec/issues/195

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

DL4J Release Notes

Due Date

To be completed by: 2018-04-30

Description

Update docs for release notes on v1.0

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

v1.0 release

Due Date

To be completed by: 2018-04-28

Description

This issue is an Epic linking multiple open issues related to release of DL4J v1.0.

Update dev guide

https://deeplearning4j.org/devguide

This hasn't been updated in forever - and is pretty outdated now, at least for the backprop and implementing layers etc parts.

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Some errors

Due Date

To be completed by: YYYY-MM-DD

Description

-In the deep learning tutorials document: seems like the linked videos were meant to be shown on the document, but only the script shows up

  • Some more scripts on eclipse-quickstart.md which I don't think is supposed to be there

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Update quickstart

Due Date

To be completed by: 2018-04-20

Description

Because of changes in DL4J v1.0, our quickstart needs to be updated. This issue also serves as a general issue for our quickstart migration to use a notebook to walk the user through features.

See also: #32

About keras add layer conversion problem

This issue has been migrated from deeplearning4j/deeplearning4j#4752

Original author @blackredscarf


when I import a keras model, I find that the total parameters more larger than it in keras.

I discover the add layer of keras is converted into MergeVertex.
Add layer operation is [1, 1] + [1, 1] = [1, 1], MergeVertex in DL4j is [1, 1] + [1, 1] = [1, 2],
I think if use ElementWiseVertex will be more reasonable.

Links in documentation pointing to non existing resources

Description

Documentation on official web page has broken links that point to github, 2 detected here.
On the end of the section the link that points to the code on github:
https://deeplearning4j.org/deepautoencoder#code-sample

For this first point Paul Dubs @treo commented on gitter the following:

But as RBMs have been removed, you not find any examples on them anyway. So that doc should be updated and the code sample there should be removed

On the end of the overview section, the link that points to ParallelWrapper:
https://deeplearning4j.org/spark

Tutorial on chemical properties using SMILE

Due Date

To be completed by: 2018-04-25

Description

@jrmerwin As discussed, forming a deep learning tutorial on how to predict a chemical property when using its composition in a SMILE format.

Note: not to be confused with smile-scala, this is a chemical property notation.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

New features on Samediff and graph

Due Date

To be completed by: 2018-04-06

Description

v1.0 contains new graph features and samediff is complete.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Update code examples on page: "Building Neural Networks with DeepLearning4J"

Code examples here contain the old string-based API for setting activation functions that has been removed some releases ago.
.activation("tanh")

https://deeplearning4j.org/building-neural-net-with-dl4j

Edit: it would also be good to add some information on how the global settings + layer overrides work.

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Documentation for new model zoo

@crockpotveggies commented on Fri May 26 2017

Issue Description

Yay! DL4J has a new model zoo. However, there's still much to do.

@tomthetrainer I'm going to do a first pass at the DL4J website and then update the examples that could use it. Are you then able to do a second pass and also tell me what information would be good for users?

Version Information

Master

Contributing

YES.

Docs: wrong/outdated code snippet at Zoo documentation

Due Date

To be completed by: YYYY-MM-DD

Description

I tried the example at https://deeplearning4j.org/model-zoo, i.e. ZooModel zooModel = new AlexNet(..); MultiLayerConfiguration net = zooModel.conf();
Sadly, the conf() method is not part of the ZooModel class. I use 1.0.0-alpha.

I want to use the zoo model for regression somehow, and the idea was to change the output layer with the configuration accordingly. Now there is no general, thus configurable possibility left for this.
Best would be a 'regression switch'/flag for the zoo models, e.g. 'setRegression(true)' in class ZooModel.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Document DataActions

Due Date

To be completed by: 2018-06-15

Description

Examples and documentation page for all the 7 DataAction types

Assignees

Shams

Test Docs Migration

This issue has been migrated from deeplearning4j/deeplearning4j#4778

Original author @crockpotveggies


Issue Description

This issue should automatically be migrated to the new docs repository.

Version Information

Please indicate relevant versions, including, if relevant:

  • Deeplearning4j version
  • platform information (OS, etc)
  • CUDA version, if used
  • NVIDIA driver version, if in use

Contributing

If you'd like to help us fix the issue by contributing some code, but would
like guidance or help in doing so, please mention it!

Document InputSplit and its implementations

Due Date

To be completed by: 2018-06-07

Description

Documentation of InputSplit and it's implementation on deeplearning4j.org. The process I'm going to follow here is to create examples in dl4j-examples repo (possibly numbered), starting from the basics to their more complex usages. After the examples are done. I'll create a documentation page for it.

Assignees

Shams

Index page typo (twice AIAI)

Description

There is a typo on the index page

Integrated with Hadoop and Spark, DL4J brings AIAI to business environments for use on distributed GPUs and CPUs

DataVec: End-to-end examples of transforms

This issue has been migrated from deeplearning4j/deeplearning4j#5213

Original author @AlexDBlack


https://github.com/deeplearning4j/DataVec/issues/355

Issue Description

As a total newcomer to datavec transform processes, it was very difficult for me to infer how to build a full transform pipeline. With the exception of @tomthetrainer's easy to follow video, I was lost on how to properly work with CSV data.

This issue is to address the need for an example that does the following:

  1. Works with a complex CSV of different types (categorical, integers, doubles strings)
  2. Shows how to use custom conditions and transforms to replace null values
  3. Shows how to do advanced transformation, including applying advanced code on string values (for example, CSV has human input text and we want to classify it before passing further into pipeline)
  4. Shows how to save to Hadoop map file, then load it into an MLP into training.
  5. Shows how to do advanced schemas for complex CSVs (what happens when you have 5,000 columns!?).

Version Information

Please indicate relevant versions, including, if relevant:

Master, current, etc.

Contributing

I'm very happy to contribute here. First, I'd like to find out if there's more that should be on this example before continuing.

Dl4J memory page: review + improve docs/examples

https://deeplearning4j.org/memory#configuring-memory-limits

Mainly around maxphysicalbytes: should be set to heap + maxbytes

More examples (that specify the exact limits for all types of memory, and behaviour for GPUs) would be good.

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Workspaces changes

Due Date

To be completed by: 2018-04-06

Description

Workspaces API has changed for v1.0 and we'll need to update our docs.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

WIP - DL4J/ND4J Benchmark Docs

Given we commonly come across poorly performed, inaccurate and incomplete benchmarks, we were thinking that it would be good to get some "guidelines and mistakes" type documentation up for this.

I've done a first pass on what I think we need here: https://gist.github.com/AlexDBlack/9b0d722181cbd99725ec6c7f38acdb01

I guess we could integrate this with the deeplearning4j.org/benchmark page? Or should this be a separate page? I'm open to suggestions there, and will open a PR.

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

tests build issue

This issue has been migrated from deeplearning4j/deeplearning4j#5823

Original author @raver119


How CLion (or any other IDE) should be set up for tests environment these days?
I get this error on Windows now:

C:\msys64\mingw64\bin\g++.exe  -g -fPIC -std=c++11 -fassociative-math -funsafe-math-optimizations -fmax-errors=2 -DLIBND4J_ALL_OPS=true -fopenmp  -g -fPIC -std=c++11 -fassociative-math -funsafe-math-optimizations -fmax-errors=2   -Wl,--whole-archive CMakeFiles\runtests.dir/objects.a -Wl,--no-whole-archive  -o runtests.exe -Wl,--out-implib,libruntests.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\runtests.dir\linklibs.rsp
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lstatic
collect2.exe: error: ld returned 1 exit status

Move ND4J website content from soon to be archived nd4j repo

AFAIK the ND4J website is still hosted on the gh-pages branch of deeplearning4j/nd4j repo.
This repo will be archived (locked) soon as part of the mono-repo migration, at which point it will be read-only.

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Search is not working as expected

To reproduce search for log files which are mentioned under Data & ETL, but there is no hit.

Also search for a header element such as ND4J, but again no hit.

So neither headers nor content are searchable.

The documentation search should be improved to use a full-text index as reference.

One easy to deploy option might be gitbook, which works similar to gh-pages, but has better search. Example:
image

Rewrite benchmark doc

Due Date

To be completed by: 2018-04-30

Description

Our doc on benchmarks lacks a link to the actual repository, and does not include any helpful directions on running the benchmarks from the repository. This will need a total rewrite.

https://deeplearning4j.org/benchmark

Assignees

@eraly because you aren't familiar with the actual repository, can you help write this? We need to make sure that this works for users who are totally new to benchmarks (and benchmarking in general).

Suggestion for improved release note formatting

https://deeplearning4j.org/releasenotes

Idea: Would having a format like the following be easier for users? http://lucene.apache.org/core/7_4_0/changes/Changes.html#v7.4.0.new_features

i.e., collapsed by default, click on what section you want to see details for...

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Add links to new single pom sample project

A number of our users don't have sufficient experience with Maven to write their own pom.xml file from scratch, and the examples (multi-module maven project) is too complex.
Thus I've added this: https://github.com/deeplearning4j/dl4j-examples/tree/master/standalone-sample-project.
deeplearning4j/deeplearning4j-examples#668

Docs should be updated where appropriate to point users to that.

Due Date

To be completed by: YYYY-MM-DD

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Add multi label content

Due Date

To be completed by: YYYY-MM-DD

Expand on this description:
Get to know the range of each input feature, get to know its variance and mean. And get to know how features will correlate with the labels. If at all possible, make sure that you would be able to do what you want the model to do. Also try to know if some of the output labels are going to be corelated, as that may influence other choices down the line.

Next: Training is done in batches. Usually you want your batches to be balanced, so your model gets a somewhat acccurate view of the world in each training step. Imagine being blind and wanting to "see" an elephant. If all you ever touched were it's legs, you might have a rather wrong picture of it. Now, in multi label classification you have usually the problem that you have no way of ever balancing your training examples, as there will always be some labels that appear more often than others, so you will have to make sure that each batch at least has a single example for all labels. As far as I know DL4J doesn't yet have anything that will help you with that.

For your model, you should use either BinaryXENT Loss with Sigmoid activation or MultiLabel Loss with your choice of activation. Both of them can deal with multi label loss, but BinaryXENT expects uncorrelated outputs while MultiLabel Loss should be able to find correlations better.

You should be able to use Multi Class Evaluation methods here (evaluateROCMultiClass) to see if you are learning anything at all.

Credit to @treo

Description

Write a short description of what needs to be done.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Document new DL4J graph

Due Date

To be completed by: 2018-04-10

Description

Document the new computation graph powered by C++.

Assignees

Please ensure you have assigned at least one person to this issue. Include any authors and reviewers required.

Docs/website: Add a maven pom file / project generator

@AlexDBlack commented on Tue Aug 23 2016

Spring initializer: http://start.spring.io/
That allows people to set up a project very quickly, even if they don't know maven. We could add something similar for DL4J.

How this would work for DL4J:

  • Specify artifact ID etc
  • Specify DL4J/ND4J version
  • Specify nd4j native vs. cuda
  • Tick boxes for optional dependencies: ui, nlp, spark, arbiter, etc.
    then: "Generate Maven pom.xml" and "Generate SBT" etc buttons.

@huitseeker commented on Tue May 16 2017

See also deeplearning4j/deeplearning4j#1466


@huitseeker commented on Fri May 26 2017

DataVec, workflow & al. - improve documentation

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.