Eclipse Deeplearning4J (DL4J) 生态系统是一组旨在支持基于 JVM 的深度学习应用程序的所有需求的项目。这意味着从原始数据开始,从任何地方、任何格式加载和预处理它,以构建和调整各种简单和复杂的深度学习网络。
由于 Deeplearning4J 在 JVM 上运行,因此您可以将其与除 Java 之外的各种基于 JVM 的语言一起使用,例如 Scala、Kotlin、Clojure 等。
DL4J 堆栈包括:
- DL4J :用于构建具有各种层(包括自定义层)的多层网络和计算图的高级 API。支持从 h5 导入 Keras 模型,包括 tf.keras 模型(自 1.0.0-beta7 起),还支持 Apache Spark 上的分布式训练
- ND4J :通用线性代数库,包含 500 多个数学、线性代数和深度学习运算。 ND4J 基于高度优化的 C++ 代码库 LibND4J,通过 OpenBLAS、OneDNN (MKL-DNN)、cuDNN、cuBLAS 等库提供 CPU (AVX2/512) 和 GPU (CUDA) 支持和加速
- SameDiff :SameDiff 是 ND4J 库的一部分,是我们的自动微分/深度学习框架。 SameDiff 使用基于图(定义然后运行)的方法,类似于 TensorFlow 图模式。计划执行 Eager graph (TensorFlow 2.x eager/PyTorch)。 SameDiff 支持导入 TensorFlow 冻结模型格式 .pb(protobuf)模型。计划导入 ONNX、TensorFlow SavedModel 和 Keras 模型。 Deeplearning4j 还具有完整的 SameDiff 支持,可以轻松编写自定义层和损失函数。
- DataVec :用于各种格式和文件(HDFS、Spark、图像、视频、音频、CSV、Excel 等)的机器学习数据的 ETL
- LibND4J :支撑一切的 C++ 库。有关 JVM 如何访问本机数组和操作的更多信息,请参阅 JavaCPP
- Python4J :JVM 的捆绑 cpython 执行
DL4J生态系统中的所有项目都支持Windows、Linux和macOS。硬件支持包括 CUDA GPU(10.0、10.1、10.2,OSX 除外)、x86 CPU(x86_64、avx2、avx512)、ARM CPU(arm、arm64、armhf)和 PowerPC(ppc64le)。
社区支持
如需对该项目的支持,请访问 https://community.konduit.ai/
在您的项目中使用 Eclipse Deeplearning4J
Deeplearning4J 有相当多的依赖项。因此,我们仅支持使用构建工具。
< 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 >
将这些依赖项添加到您的 pom.xml 文件中,以将 Deeplearning4J 与 CPU 后端结合使用。如果您想从头开始一个新的 Maven 项目,示例存储库中提供了完整的独立项目示例。
代码示例
由于 DL4J 是一个多方面的项目,在 mono 存储库中包含多个模块,因此我们建议查看示例以了解不同模块的不同用法。下面我们将链接到每个模块的示例。
- ND4J:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/nd4j-ndarray-examples
- DL4J:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/dl4j-examples
- Samediff:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/samediff-examples
- Datavec:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/data-pipeline-examples
- Python4j:https://deeplearning4j.konduit.ai/python4j/tutorials/quickstart
对于希望能够从其他框架运行模型的用户,请参阅:
- Onnx:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/onnx-import-examples
- Tensorflow/Keras:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/tensorflow-keras-import-examples
文档、指南和教程
您可以在 http://deeplearning4j.konduit.ai/ 找到 Deeplearning4J 及其生态系统其他库的官方文档。
想要一些例子吗?
我们有单独的存储库,其中包含各种可用示例:https://github.com/eclipse/deeplearning4j-examples
从源头构建
最好使用官方预编译版本(见上文)。但如果您想从源代码构建,请首先在此处查看从源代码构建的先决条件:https://deeplearning4j.konduit.ai/multi-project/how-to-guides/build-from-source。可以在那里找到有关 cpu 和 gpu 构建的各种说明。请访问我们的论坛寻求进一步帮助。
运行测试
为了运行测试,请参阅平台测试模块。该模块仅在 jdk 11 上运行(主要是由于旧版 scala 版本 + JDK 17 的 Spark 和 bug)
platform-tests 允许您为不同的后端运行 dl4j。您可以在命令行上指定一些属性:
- backend.artifactId:默认为 nd4j-native 并将在 cpu 上运行测试,您可以指定其他后端,例如 nd4j-cuda-11.6
- dl4j.version:您可以更改运行测试的 dl4j 版本。默认为 1.0.0-SNAPSHOT。
更多参数可以在这里找到:
| <平台.classifier> ${javacpp.platform} </平台.classifier> |
在Intellij IDEA中运行项目:
- 确保在 jdk 9 或更高版本上遵循 https://stackoverflow.com/questions/45370178/exporting-a-package-from-system-module-is-not-allowed-with-release
- 忽略所有 nd4j-shade 子模块。右键单击每个文件夹,然后单击:Maven -> 忽略项目
执照
阿帕奇许可证 2.0
商业支持
Deeplearning4J 由 Konduit KK 团队积极开发。
[如果您需要任何商业支持,请随时与我们联系。邮箱:[email protected]