Deeplearning4J

一个运行在Java虚拟机(JVM)深度学习工具,让Java编程者可以使用python生态系统的深度学习库。

Java
Eclipse
深度学习
初始发布时间:2017年10月
工具描述

Eclipse Deeplearning4J(DL4J)生态系统是一组项目,旨在支持基于JVM的深度学习应用程序的所有需求。这意味着从原始数据开始,从任何地方和任何格式的数据加载和预处理到构建和调整各种简单和复杂的深度学习网络。这意味着Java工作者可以不用学习额外的编程语言来编写深度学习相关的算法。

因为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,提供CPU(AVX2/512)和GPU(CUDA)支持,并通过OpenBLAS、OneDNN(MKL-DNN)、cuDNN、cuBLAS等库进行加速。

SameDiff:作为ND4J库的一部分,SameDiff是我们的自动区分/深度学习框架。SameDiff使用基于图的方法(先定义再运行),类似于TensorFlow图模式。计划采用Eager图(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。

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)。

是否开源:

许可协议: Apache-2.0 license

官方地址: https://deeplearning4j.konduit.ai/

GitHub地址: https://github.com/eclipse/deeplearning4j

初始贡献者: Alex D. Black, Adam Gibson, Vyacheslav Kokorin, Josh Patterson

最佳实践指南

官方文档:https://deeplearning4j.konduit.ai/

Eclipse-logo
pytorch-logo
推荐工具

TensorFlow - 深度学习

MindSpore - 深度学习