DLJ

DLJ is An Engine-Agnostic Deep Learning Framework in Java.

概览

深度Java库(DJL)是用于深度学习的开源,高层,框架无关的Java API。

DJL的设计旨在使Java开发人员易于上手并易于使用。

DJL提供了本机Java开发经验和功能,就像其他任何常规Java库一样。

您无需成为机器学习/深度学习专家即可上手。您可以将现有的Java专业知识用作入门来学习和使用机器学习和深度学习。您可以使用自己喜欢的IDE来构建,训练和部署模型。 DJL使您可以轻松地将这些模型与Java应用程序集成。

由于DJL与深度学习框架无关,因此在创建项目时无需在框架之间进行选择。您可以随时切换框架。为了确保最佳性能,DJL还提供了基于硬件配置的自动CPU / GPU选择。

DJL的人体工程学API接口旨在指导您以最佳实践完成深度学习任务。

学习目的

以前想学习 ai,发现市面上大部分资料都是 python 的。

虽说 python 也看得懂,但毕竟没有 java 用着这么得心应手。

快速开始

基本环境

参见 setup

  • jdk8

  • maven

个人使用 idea 导入项目

运行

cd examples
./gradlew run -Dmain=ai.djl.examples.training.TrainMnist

报错 1

Couldn't find D:\_github\djl\examples\\gradle\wrapper\gradle-wrapper.jar, downloading it ...
Downloading from: "https://raw.githubusercontent.com/gradle/gradle/master/gradle/wrapper/gradle-wrapper.jar"

我直接手动下载了个 gradle-wrapper.jar 放在了对应的目录下,重新执行。

gradlew run -Dmain=ai.djl.examples.training.TrainMnist

报错 2

Found D:\_github\djl\examples\\gradle\wrapper\gradle-wrapper.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/gradle/cli/CommandLineParser
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:43)
Caused by: java.lang.ClassNotFoundException: org.gradle.cli.CommandLineParser
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more

看到有一个解释如下:

The problem is that I did not set the GRADLE_HOME environment parameter. Since this parameter is not available, gradlew does not know where to find the gradle libraries. After setting this parameter and is able to run gradle in cmd, this problem disappers.
  • 设置 GRADLE_HOME

拓展阅读

DL4j

参考资料

Train Handwritten Digit Recognition using Multilayer Perceptron (MLP) model

报错

stackoverflow