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

快速在阿里云上构建机器学习应用

3月28日云栖大会开源专场,阿里云技术专家必嘫给大家带来了“在阿里云上构建机器学习应用”的演讲。本文主要从深度学习应用发展历史开始谈起,进而介绍了如何结合阿里云容器服务的机器学习解

3月28日云栖大会开源专场,阿里云技术专家必嘫给大家带来了“在阿里云上构建机器学习应用”的演讲。本文主要从深度学习应用发展历史开始谈起,进而介绍了如何结合阿里云容器服务的机器学习解决方案快速打造一套深度学习应用的案例。

深度学习应用发展的介绍

深度学习在2016年有两款应用特别火爆,影响到每个普通人的生活。第一个是会下围棋的AlphaGo,它向大家证明了计算机不只有强大的运算能力,同时具备了自学能力,更厉害的是这种学习能力是可以纵向深入的,换句话说,不需要人赋予的逻辑,计算机可以通过大量的数据和不断的训练成为一个领域的专家。

而另一款是萌萌的手机应用:Prisma,这也是一款基于深度学习技术的手机应用,在2016年底,它分别登上了ios和Android手机最佳应用的头名,成为全球潮人的家具旅行必备良品。这款产品的功能直白一点说,就是用户提供自家小区的照片,结合绘画大师的艺术风格,最后产生一款有大师风格的用户照片。用机器学习的语言来描述,这个工作分为两个部分 
1. 求解描述大师风格的方程f,这是整个过程中最消耗时间的事情,大概占据了整个消耗时间的99%
2. 当风格方程f的参数确定后,将x代入方程f

这套风格转换的深度学习算法并不是Prisma首创的,实际上在2015年,就有三个来自德国的研究员发明了这套算法,并发表了论文。同时他们也创办了一家叫Deep Art的公司。用户在 Deep Art 网页上上传自己的照片,然后通过 Deep Art 提供的 “机器人梵高” 进行新画创作。整个过程需要等待几个小时让计算机进行数据运算和处理。用户可以选择清晰程度不等的作品。用户可以花上 19 欧买一张适合明信片用的作品,或者多掏 100 欧,买一张大尺寸油画级别的。他们的生意不错但是并没有大火。

其中的原因有两个:

  1. 等待一副图片的产生需要几个小时的用户体验不佳,要知道用户是没有耐心等待的
  2. 它没有提供手机App,导致用户覆盖率不够高。

而这时一个聪明的俄罗斯程序员阿列克谢 · 莫伊谢延科夫(Alexei Moiseyenkov)意识到了这个聚宝盆并没有真正开启,他要做一款速度超快的手机应用。能实现相同的功能。经过两个月的研究,他发现慢的原因在于,原始的风格迁移过程中,每生成一张图片,都相当于要训练一次模型,这中间可能会迭代几百几千次。如果了解过一点机器学习的知识,就会知道,从头训练一个模型要比执行一个已经训练好的模型要费时太多。而这也正是原始的风格迁移速度缓慢的原因。他解决了这个技术问题后,同时开发出了手机应用。Prisma 在面世仅仅一周后,就收到了俄罗斯网络公司 http://Mail.Ru 的价值200万美元的投资。

分享这个故事的想告诉大家的是如何把AI的技术转化成相关的产品,实现数据,技术和场景的联动,才是真正的价值,也是真正的挑战。下面会给大家演示如何在阿里云上快速搭建这款价值千万美金的深度学习应用。

在阿里云上构建类似Prisma的深度学习应用

要构建深度学习应用,选择一款深度学习工具是必不可少的步骤。TensorFlow是谷歌于2015年11月9日正式开源的计算框架。TensorFlow计算框架可以很好地支持深度学习的各种算法,但它的应用也不限于深度学习。这里我们选择TensorFlow作为数值计算库,而使用的代码在github上:fast-style-transfer)

接下来,要梳理一下机器学习的工作流程,它分为数据准备,训练程序开发,训练任务执行和在线预测服务四个部分,在每个阶段都有相应的工作。

针对于这个流程,容器服务团队提供了云上机器学习解决方案。这个方案以容器服务为核心,贯穿了前面提到的机器学习生命周期,并且无缝的整合了阿里云的计算,存储,负载均衡等服务。它的好处在于利用了容器技术,但是并不需要用户深入了解容器技术。

具体操作步骤

1. 准备数据

通过osscmd和图形用户界面上传数据,当数据非常巨大时,可以考虑利用oss提供的解决方案。

2. 通过图形用户界面一键式的定制云端实验开发环境,并且支持tensorboard查看训练趋势。这里我们的目的是调试训练代码逻辑。

3. 构建云端训练,完成模型的导出

使用git导入应用代码, 如果在需要安装python依赖库,可以在应用的根目录下放置requirements.txt, 这样就可以在应用初始化的时候安装这些依赖包.对于分布式存储,这里有一个约定:在执行环境的/input文件夹对应于选定oss数据卷的根目录,/output对应训练程序要输出到oss数据卷。目前云端训练支持单机和多机两种模式,如果是多机模式,需要分别指定参数和任务服务器的数量。机器学习解决方案会在调度时刻,将生成的参数传递给任务服务器,。如果训练过程中需要利用tensorboard查看训练状况也是支持的。

4. 利用导出的模型,执行在线预测

创建预测服务,这里预测服务具体支持两种: TensorFlow Serving和自定义服务。TensorFlow Serving支持加载TensorFlow导出的标准模型,自定义服务可以支持用户自己开发的预测应用。对这两种服务,都可以从数据卷中加载模型或者checkpoint,并且自动绑定负载均衡服务,同时还可以指定预测实例的个数,保证应用的高可用

阅读全文:http://click.aliyun.com/m/15555/  

 


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
dx152
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有