Java工程师快速入门深度学习,从D

随着机器学习、深度学习为主要代表的人工智能技术的逐渐成熟,越来越多的AI产品得到了真正的落地。

无论是以语音识别和自然语言处理为基础的个人助理软件,还是以人脸识别为基础的刷脸付费系统,这些都是AI技术在现实生活中的实际应用。

应当说AI正在走进千家万户,来到你我的身边。

另一方面,从研发角度来讲,AI产品的落地并不是一件容易的事情:

AI技术数学理论要求高,数理统计、神经理论与脑科学、优化理论、矩阵论……

AI硬件层面要求非常高,GPU、TPU、FPGA……

如何基于目前的主流研究成果和硬件,对AI产品进行一站式的开发?这正是当前企业工程师面临的实际痛点。

对此,多家企业及研究机构推出了自己的解决方案,如Google推出并开源了TensorFlow,Facebook主导PyTorch和Caffe2,Amazon选择MXNet并打算投资围绕MXNet的系统,微软开发并大力推广CNTK......

这些都是以Python和C/C++语言为主,而在目前企业项目中,无论是Web应用、Andriod开发还是大数据应用,Java语言都占有很大的比例。

此外,我们必须看到,越来越多的从事传统Java应用开发的工程师尝试将AI技术融入到项目中,或者自身在尝试转型AI领域。

因此如果有类似TensorFlow、Caffe这些AI解决方案而又同时基于Java的,那么无疑会为项目的推进及个人的发展带来很多便利。

Deeplearning4j正是这类解决方案中的佼佼者。

01

Deeplearning4j是什么?

Deeplearning4j是由美国AI创业公司Skymind开源并维护的一个基于Java/JVM的深度学习框架。

同时也是在ApacheSpark平台上为数不多的,可以原生态支持分布式模型训练的框架之一。

此外,Deeplearning4j还支持多CPU/GPU集群,可以与高性能异构计算框架无缝衔接,从而进一步提升运算性能。

在年下半年,Deeplearning4j正式被Eclipse社区接收,同JavaEE一道成为Eclipse社区的一员。

02

为什么选择Deeplearning4j?

1.基于Java,专为企业应用而生

Deeplearning4j是基于Java的深度学习开源框架。从实际开发的角度上,它是面向Layer编程的神经网络开发框架,对很多常见的神经网络结构做了高度的封装。

熟悉Keras的朋友可以认为Deeplearning4j是Java版本的Keras。

同时Deeplearning4j也完美兼容Scala和Clojure。

2.丰富的开源生态圈,遵循Apache2.0

Deeplearning4j也拥有自己的生态。在Deeplearning4j的相关开源项目中,就有专门为张量运算而开发的ND4J和数据处理的DataVec。它们的作用相当于Python中的NumPy和Pandas。

当然,除了这些项目以外,Arbiter、RL4J等项目也大大丰富了Deeplearning4j的生态圈。

3.与Hadoop和Spark集成,支持分布式CPU和GPU

Deeplearning4j是原生支持在ApacheSpark上构建分布式深度学习解决方案的框架。

由于在企业的实际应用场景中,大数据的统计和存储往往会依赖Hive/HDFS等存储介质。

而算法模型的构建必须依赖庞大的数据,因此如果可以完成一站式的数据存储、数据提取和清洗、训练数据的构建、模型训练和调优的所有开发环节,无疑是非常理想的解决方案。

Deeplearning4j以数据并行化为理论基础构建了分布式神经网络建模的解决方案,为大数据+算法的开发提供了直接的支持。

Deepleanring4j支持多CPU/GPU集群的建模。就像在上文中提到的,GPU等硬件的成熟大大加速了AI的发展。

Deeplearning4j通过JavaCPP技术调用cuBLAS来实现在GPU上的加速建模。对于GPU集群的支持则需要依赖Spark。

4.越来越受开发人员欢迎

自Deeplearning4j从年左右开源以来,功能优化与新特性的丰富使得项目本身不断得到完善,在GitHub上的Commiter活跃度与Star数量也不断增加,使得该开源框架越来越得到国内外企业的


转载请注明:http://www.guyukameng.com/html/html1/11689.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了