From the webpage:
Deeplearning4j is the first commercial-grade, open-source deep-learning library written in Java. It is meant to be used in business environments, rather than as a research tool for extensive data exploration. Deeplearning4j is most helpful in solving distinct problems, like identifying faces, voices, spam or e-commerce fraud.
Deeplearning4j integrates with GPUs and includes a versatile n-dimensional array class. DL4J aims to be cutting-edge plug and play, more convention than configuration. By following its conventions, you get an infinitely scalable deep-learning architecture suitable for Hadoop and other big-data structures. This Java deep-learning library has a domain-specific language for neural networks that serves to turn their multiple knobs.
Deeplearning4j includes a distributed deep-learning framework and a normal deep-learning framework (i.e. it runs on a single thread as well). Training takes place in the cluster, which means it can process massive amounts of data. Nets are trained in parallel via iterative reduce, and they are equally compatible with Java, Scala and Clojure, since they’re written for the JVM.
This open-source, distributed deep-learning framework is made for data input and neural net training at scale, and its output should be highly accurate predictive models.
By following the links at the bottom of each page, you will learn to set up, and train with sample data, several types of deep-learning networks. These include single- and multithread networks, Restricted Boltzmann machines, deep-belief networks, Deep Autoencoders, Recursive Neural Tensor Networks, Convolutional Nets and Stacked Denoising Autoencoders.
For a quick introduction to neural nets, please see our overview.
There are a lot of knobs to turn when you’re training a deep-learning network. We’ve done our best to explain them, so that Deeplearning4j can serve as a DIY tool for Java, Scala and Clojure programmers. If you have questions, please join our Google Group; for premium support, contact us at Skymind. ND4J is the Java scientific computing engine powering our matrix manipulations.
And you thought I write jargon laden prose. 😉
This both looks both exciting (as a technology) and challenging (as in needing accessible documentation).
Are you going to be “…turn[ing] their multiple knobs” over the holidays?
I first saw this in a tweet by Gregory Piatetsky.
Hi Patrick –
I’m one of the folks working on Deeplearning4j. Thanks for the feedback on the docs! How can we help clarify things?
Best,
Chris
Comment by skymind — January 3, 2015 @ 10:32 pm
Chris,
If you have to ask…, 😉
Seriously, it depends on who your target audience is supposed to be. If it is only other deep learning experts, you are probably ok. But that sounds like a tiny market share, at least to me. You are the better judge on that front.
If you are targeting developers, I would pick some common problems and datasets so that the deep learning jargon is more background noise while a project is wired together and useful results are produced.
Think of it as being the difference between being able to build a car from scratch versus being able to work on a car already built, versus being able to drive a car once it is repaired. All of those are plausible markets and each one is bigger than the previous one.
The documentation for each of those is going to be very different. Remembering that most users don’t want to marry software or a paradigm, they have some concrete benefit they are seeking.
I haven’t looked at the documentation closely enough to make specific suggestions and that would require some idea of the target audience. Who are you pitching to?
Comment by Patrick Durusau — January 5, 2015 @ 4:15 pm