热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j|分享总结

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j|分享总结本文作

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结
本文作者:杨文 2018-01-02 11:03
导语:一文读懂深度学习框架Deeplearning4j 的构成与应用

雷锋网AI研习社按:深度学习是人工智能发展最为迅速的领域之一,Google、Facebook、Microsoft等巨头都围绕深度学习重点投资了一系列新兴项目,他们也一直在支持一些开源深度学习框架。目前研究人员使用的深度学习框架有 TensorFlow、Torch 、Caffe、Theano、Deeplearning4j等,而Deeplearning4j是为数不多以Java/JVM为基础,能与Apache Spark无缝结合,支持CPU/GPU集群分布式计算的开源框架。本文就来为大家详细介绍一下深度学习框架Deeplearning4j的重要组件,不同环境下的操作用法及实例分享。

在近期雷锋网(公众号:雷锋网)AI研习社的线上分享会,来自苏宁易购搜索技术研发部的资深算法工程师万宫玺为大家介绍了Deeplearning4框架的构成、主要功能模块并结合实例讲述具体的使用方法。

视频回放链接:http://www.mooc.ai/open/course/333

万宫玺,苏州大学硕士,现就职于苏宁易购搜索技术研发部,从事自然语言处理、机器视觉等领域的应用开发工作。熟悉诸如Deeplearning4j、Keras等开源深度学习框架。

以下为主要分享内容:

分享主题为:基于Java的开源深度学习框架-Deeplearning4j的介绍与实例分享。(

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

分享内容可概括以下四方面:

  • Deeplearning4j生态圈主要功能模块的介绍

  • Deeplearning4j单机/并行/分布式建模过程介绍

  • Deeplearning4j对迁移学习、强化学习的支持

  • 基于Fashion Mnist数据集的图像分类应用的开发、部署、上线实例

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

第一部分内容具体为DL4j的开源库背景,目前的项目进展情况和背后的支撑团队。

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

第二部分为DL4j的生态圈,主要介绍生态圈中最重要的三个模块:DL4j本身,它所依赖的张量预算库ND4j、DL4j当中做数据ETL的库DataVec。

DL4j本身,它定义并且实现了比较经典的神经网络结构,比如图片中比较常用的卷积神经网络。机器学习都需要依赖一个张量运算框架,对于DL4j,他依赖的是ND4j这样一个框架,libnd4j是ND4j调用的一个库。

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

Model Zoo 是官方给出的经典神经网络结构的实现。包括AlexNet,GoogLenet ,DeepFace,YOLO等。Modle Zoo在0.9.0版本之前是作为一个独立的工程存在的,0.9.0之后的版本作为DL4j本身的一个模块,已经嵌入进去。

DL4j所依赖的张量运算库ND4J,ND4j可当作JAVA 版的Numpy。

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

ND4j内存管理情况:

ND4j利用了堆外内存和堆上内存两个部分的内存做相应的计算。当用ND4j去声明一个具体的张量时候,是在堆外内存存储张量对象,堆上内存只存储张量对象的引用。设计的原因主要是我们所依赖张量运算库,大部分的运算空间都是在堆外内存上,把数据放到堆外内存可提高运行效率。

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

需要注意的是,用ND4j做神经网络的训练时,堆外内存一定要调的非常大,因为大量的工作都是在堆外内存做相应的张量运算。堆外内存要远远大于堆上内存。

ND4j具体例子,第一个是如何去创建一个张量,并且把这个张量在底层存储的顺序打印出来。

第二个是hadmard乘积实现。用直白的话解释就是,两个张量相应的位置去做乘积,把这个结果形成新的向量,作为下一部分利用的结果,这个操作在包括卷积上面都是比较常用的。

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

数据ETL库,称之为DataVec, 它的主要功能就是把语音信号,图片文件,文本文档转化为张量形式,做数据ETL.

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

总结DataVec库的作用:它可以将非结构化数据经过处理转化变成张量型数据,也支持结构化数据的读取。

第三个部分怎么建模。分三个场景,第一个是本地单机建模;第二个是有多个CPU或多个GPU卡情况下怎么做并行建模;第三个是怎么和Spark结合做分布式的DL4j模型的建模。

建模的四个步骤并不是固定的,可以根据实际情况做灵活的处理。大致思路首先是生成这样一个训练,测试,验证数据集。

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

本地单机建模,首先是加载数据(包括本地数据和测试数据),其次是配置模型结构以及超参数,并初始化模型参数。最后,训练神经网络模型,并利用测试数据集进行评估。

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

数据并行化:

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

并行建模如图所示:

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

怎么和Spark结合做一个分布式的Dp4j模型的建模:

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

想要在Spark上面开发的同学,需要注意Spark的版本,因为DL4j支持1.5、1.6 还有2.0之后的版本。框架接近1.0版本的发布,真正原生态支持Spark 并不多,DL4j和Spark的结合是它的一大亮点。

第四部分是强化学习模块,称之为RL4j ,也是生态系统当中的一个组件。

迁移学习和强化学习在DL4j的支持情况:

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

具体应用实例分享:

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

关于Deeplearning4j 的总结:

资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

个人在做AI方面的心得体会:

  • 机器学习是AI的主要解决方案,但不是唯一方案。

  • 深度学习并不是万能的,对于非结构化数据:图像、文本、语音会有出色的效果,但传统机器学习模型同样很重要。

  • 数据的质和量在实际的应用中共同决定了模型的泛化能力。

  • 转型AI同样可以从Hello World 入手。

  • 提升AI内功必须精通原理,而不仅仅跑出Demo。

  • 不要局限于某一特定工具框架,可以取长补短。

  • 迁移学习和强化学习可能代表AI的未来。

如果想详细了解深度学习的应用,如何做开发,怎么去训练他的模型,怎么去调优,怎么去部署上线点击下面的视频可回顾本期内容。

雷锋网AI慕课学院视频回放链接:http://www.mooc.ai/open/course/333


推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 2017亚马逊人工智能奖公布:他们的AI有什么不同?
    事实上,在我们周围,“人工智能”让一切都变得更“智能”极具讽刺意味。随着人类与机器智能之间的界限变得模糊,我们的世界正在变成一个机器 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 当写稿机器人真有了观点和感情,我们是该高兴还是恐惧?
    目前,写稿机器人多是撰写以数据为主的稿件,当它们能够为文章注入观点之时,这些观点真的是其所“想”吗?最近,《南 ... [详细]
author-avatar
天生骄傲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有