当前位置:首页 > AI技术 > 正文内容

DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介、安装

admin2个月前 (03-27)AI技术53

,与Hadoop和Spark集成。Skymind是Deeplearning4j的商业支持机构。

Deeplearning4j是开源项目,主要由位于旧金山的一支机器学习团队开发,团队由Adam Gibson领导。Deeplearning4j是谷歌Word2vec页面上列出的唯一一个在Java环境下实施Word2vec的开源项目。

Java虚拟机中的科学计算。Deeplearning4j包括使用ND4J的N维数组类,可在Java和Scala中进行科学计算,

类似于Numpy为Python提供的功能

。其基础是线性代数库,可有效支持生产环境中的矩阵操作。

Deeplearning4j已经用于多项商业和科研应用。其代码由GitHub托管,并在谷歌小组上设有支持论坛。

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://github.com/deeplearning4j

https://github.com/deeplearning4j/deeplearning4j

Deeplearning4j Suite Overview - Deeplearning4j

Deeplearning4j

:因为Deeplearning4J运行在JVM上,所以除了Java之外,您还可以将它与各种基于JVM的语言一起使用,比如Scala、Kotlin、Clojure等等。Deeplearning4j基于广泛使用的编程语言Java——但同时也兼容Clojure,并且包括Scala的API。它由自有的

开源数值计算库ND4J驱动

,可使用CPU或GPU运行。

:这一框架是可组合的,即受限玻尔兹曼机、卷积网络、自动编码器、递归网络等浅层神经网络可以相互叠加,组合成不同类型的深度网络。

:Deeplearning4j的定型以集群进行。神经网络通过迭代化简平行定型,可以在Hadoop/YARN以及Spark上运行。Deeplearning4j还与Cuda内核集成,进行纯GPU操作,可使用分布式GPU运行。

用于机器学习的Canova向量化库

:Canova可将各类文件格式和数据类型向量化,所用的输入/输出格式系统近似于Hadoop的MapReduce。Canova目前仍在开发中,设计目标是实现CSV、图像、声音、文本和视频的向量化。Canova可以从命令行使用。 版本0.4.0之后,Canova库已合并到 DataVec当中。

:用于构建具有各种层(包括自定义层)的多层网络和计算图的高级 API。支持从 h5 导入 Keras 模型,包括 tf.keras 模型(截至 1.0.0-beta7),还支持在 Apache Spark 上进行

:通用线性代数库,包含

超过 500 种数学、线性代数和深度学习运算

。 ND4J 基于高度优化的 C++ 代码库 LibND4J,通过 OpenBLAS、OneDNN (MKL-DNN)、cuDNN、cuBLAS 等库

(AVX2/512) 和 GPU (CUDA)

: 作为ND4J 库的一部分,SameDiff 是我们的自动微分/深度学习框架。 SameDiff 使用基于图形(定义然后运行)的方法,

类似于 TensorFlow 图形模式

。 Eager graph (TensorFlow 2.x eager/PyTorch) 图执行计划。 SameDiff 支持导入 TensorFlow 冻结模型格式 .pb (protobuf) 模型。计划导入 ONNX、TensorFlow SavedModel 和 Keras 模型。 Deeplearning4j 还具有完整的 SameDiff 支持,可以轻

松编写自定义层和损失函数

:用于各种格式和文件(HDFS、Spark、图像、视频、音频、CSV、Excel 等)的

机器学习数据的 ETL

:支撑一切的 C++ 库。有关 JVM 如何访问本机数组和操作的更多信息,请参阅 JavaCPP;

深度学习框架Deeplearning4j的安装

git clone https://github.com/eclipse/deeplearning4j

Java(开发者版7或更新版本(仅支持64位版本)

Apache Maven

IntelliJ IDEA(建议)或Eclipse

深度学习框架Deeplearning4j的简使用方法

Deeplearning4J

MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()

.seed(seed)

.l2(0.0005)

.weightInit(WeightInit.XAVIER)

.updater(new Adam(1e-3))

.layer(new ConvolutionLayer.Builder(5, 5)

.stride(1,1)

.activation(Activation.IDENTITY)

.layer(new SubsamplingLayer.Builder(PoolingType.MAX)

.kernelSize(2,2)

.stride(2,2)

.layer(new ConvolutionLayer.Builder(5, 5)

.stride(1,1)

.activation(Activation.IDENTITY)

.layer(new SubsamplingLayer.Builder(PoolingType.MAX)

.kernelSize(2,2)

.stride(2,2)

.layer(new DenseLayer.Builder().activation(Activation.RELU)

.nOut(500).build())

.layer(new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)

.nOut(outputNum)

.activation(Activation.SOFTMAX)

.setInputType(InputType.convolutionalFlat(28,28,1))

相关文章

【大数据分析 | 深度学习】在Hadoop上实现分布式深度学习

一、Submarine(Hadoop生态系统) (一)Submarine 介绍 (三)Submarine 属于 Hadoop 生态系统 (四)Submarine 官网版...

【DL】2023年你应该知道的 10 大深度学习算法

3. 循环神经网络 (RNN) 4. 生成对抗网络 (GAN) 5. 径向基函数网络 (RBFN) 6. 多层感知器 (MLP) 7. 自组织图 (SOM)...

神经网络分类总结

从网络性能角度可分为连续型与离散型网络、确定性与随机性网络。 从网络结构角度可为前向网络与反馈网络。 从学习方式角度可分为有导师学习网络和无导师学习网络。 按连续突触性...

跨平台机器学习:ML.NET架构及应用编程

平台上的一个机器学习框架,它提供了一套丰富的算法和工具,使得开发人员可以轻松地构建和部署机器学习模型。支持多种编程语言,包括等,这使得它成为跨平台机器学习的理想选择。的架构主要包括三个部分:数据读取、...

什么是人工智能 ?

您可以使用 ML 训练 AI,使其精确、快速地执行任务。这可以通过自动化员工感到吃力或厌烦的业务部分来提高运营效率。同样,您可以使用 AI 自动化来腾出员工资源,用于更复杂和更具创造性的工作。...

几种主要的神经网络

卷积神经网络的输入为二维的像素整阵列,输出为这个图片的属性,当网络训练学习后,所输入的图片或许经过稍微的变换,但卷积神经网络还是可以通过识别图片局部的特征而将整个图片识别出来。 :该层...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。