谷歌开发者大会2018实录——TensorFlow篇-阿里云开发者社区

开发者社区> 闲鱼技术> 正文

谷歌开发者大会2018实录——TensorFlow篇

简介:
+关注继续查看

作者:闲鱼技术-楚丰,仝辉

摘要

在9月21日结束的Google开发者大会上,闲鱼团队作为Google的合作伙伴参加了此次会议,不仅在Flutter方面与谷歌以及国内开发者进行了深度交流,同时闲鱼技术开发专家陈永新作为本次大会的演讲嘉宾,分享了闲鱼基于TensorFlow Lite的端计算应用实践。在闲鱼的展台上还展示了闲鱼基于TensorFlow的黑科技:UI2Code,吸引了络绎不绝的开发者前来围观。

gdd5.JPG

TensorFlow 趋势

TensorFlow自2015年发布以来,已经成为世界上使用最广泛的机器学习框架,满足了广大的用户和用例需求。在此期间,TensorFlow随着计算硬件、机器学习研究和商业部署的快速发展而得到进步。

为了反映这些快速变化,本次的谷歌开发者大会介绍了TensorFlow和lite的一些新特性,重点关注易用性。以下是TensorFlow的新特性:

1.Eager execution,动态图机制,允许直接执行图,将更方便调试。

也将会是未来TensorFlow 2.0版本的默认开启选项。它将用户对编程模型的期望与TensorFlow更好地结合起来,并且使TensorFlow更易于学习和应用。

2.通过交换格式的标准化和API的一致性,支持更多平台和语言,并改善这些组件之间的兼容性和奇偶性。

3.将删除已弃用的API并减少重复数量,避免给用户造成混淆。

4.TensorFlow Lite转换工具添加post-training模型量化(post-training quantization)。

对于相关的机器学习模型,这可以实现最多4倍的压缩和3倍的执行速度提升。此外,模型主要由卷积层组成,执行速度提高10-50%的同时减少了内存和计算需求,预计大多数模型的功耗也会降低。

5.TensorFlow Lite从contribute目录移动到主目录,正式加入TensorFlow主工程。

TensorFlow Lite在闲鱼客户端上的应用

闲鱼客户端如何应用TensorFlow Lite

闲鱼自研了一个基于TensorFlow Lite的框架,主要对三方面进行了定制:拓展性、安全性和动态化。

1.拓展性:在拓展性方面利用TensorFlow Lite的自定义OP,将我们所需的一些数据预处理等作为一个自定义OP,整合到同一个模型,这样可以一个业务就是一个模型,能够做到业务之间保持独立。

2. 安全性:通过自定义的加密头等方式,将模型进行加密,在客户端运行该模型时,动态解析出原始模型,做到数据不落盘,最大程度保证了数据安全。

3. 动态化:通过服务端动态下发模型和OP的方式,实现了线上更新模型和算法,极大地方便了灰度测试、算法升级等需求。

应用一:视频封面

在视频封面这个案例中,利用TensorFlow Lite,可以将原先传统算法做的事,在端上用用AI模型来完成。传统基于规则的做法,选取视频封面的时候,是由算法同学设计一个基础算法,同时再处理各种Case,最终选取一张封面。对于遗漏忘处理的情况,则需要发版更新算法,维护成本太高。
而使用AI模型,则可以通过动态下发模型和OP的方式随时灰度和升级。

应用二:视频指纹

在这个案例中,展示了一种对 TensorFlow Lite 较“另类”的用法:将它当做一个计算框架。TensorFlow Lite 本身就是一种计算流程的框架,因此,可以利用它支持自定义OP的特性,将我们算法的各个环节作为一个个自定义OP,然后利用模型将这些计算环节“串联”起来,这样,整个TensorFlow Lite就俨然成为了一个天然的端计算框架。这样既可以对单个计算环节(自定义OP)做更新,还能随时调整整个计算流程(即调整模型)。

应用三:智能租房

最后这个案例是比较传统的TensorFlow Lite的用法,使用了较流行的SSD模型,在租房环节,通过自能识别图片中的家具(冰箱、电视等),以此自动地给用户发布的房屋打上标签,不仅简化了用户操作,还丰富了商品信息,为后台数据搜索推荐等提供了更有效的信息。

TensorFlow 在闲鱼工程效率上的应用

UI2Code

关于UI2Code的介绍,可以参考前面的一篇文章《Google开发者大会将揭晓哪些黑科技》

该项目展示的是从一张图片,直接生成UI代码的过程。该图片可以是设计师的视觉产出,也可以是手机上随便打开一个软件然后截图得到。
这里针对大家关心最多的几个问题做一下说明:

1.“UI2Code”和微软刚刚开源的“Sketch2Code”有什么区别

Sketc2Code 关注的是如何快速的将设计师的灵感,变成“近似”的UI代码,可以理解成是给设计师用的创作工具,生成的代码也并不是为了直接作为线上代码使用。

而我们的 UI2Code 关注的是1比1像素级别的“精确”还原,目的是为了节省开发人员重复机械的视觉还原工作,将没有创造性的重复性工作交给机器,这样开发人员就可以去关注更重要的逻辑性问题。它生成的UI代码是“接近”生产可用的,开发人员只要做一些数据绑定或者细微的调整即可。

2.“UI2Code”是如何使用TensorFlow的?

实际上该项目是一个复杂的工作流程,在流程的某些节点上,我们使用TensorFlow来完成深度学习任务。比如,由于输入是一张纯图片,并无其它任何信息,因此,需要用深度学习来“理解”图片内容,包括哪些是文本,哪些是图片等等。

3.你们这个有对外提供服务吗?是否有开源计划?

目前该工具还只是闲鱼内部使用(实际上我们的团队已经用它有一段时间了,上线了多个导购页面),下半年会开始考虑开源计划。由于该工具里面有部分我们自有业务的东西,同时公司有严格的开源审核和披露的流程,因此还需要一段时间,大家可以关注我们的公众号:闲鱼技术,到时候有了进一步的消息会第一时间在上面公布。

gdd2.JPG

结语

本次大会闲鱼作为Google的合作伙伴,与广大开发者分享和交流了闲鱼在Flutter和TensorFlow等方向上的实践,我们希望同广大开发者一起,在技术的道路上,不断探索创新,用技术推动业务。当然我们也对人才求贤若渴,如果你也希望做一些很“酷”的事情,欢迎加入闲鱼!

简历投递:guicai.gxy@alibaba-inc.com

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10004 0
手把手丨用TensorFlow开发问答系统
一个问答系统是被设计用来回答用自然语言提出的问题的系统。一些问答系统从诸如文本和图片这样的“源”里获得信息来回答特定的问题。这些依赖“源”的系统可以基本被分为两类:开放话题的,它需要回答的可能是任何问题,不限于特定的领域;特定话题的,它回答的问题是有特定限制的,因为它们是与一些预先定义的“源”相关,比如有给定上下文或是特定领域(如医学等)。
2081 0
如何优化大规模推荐?下一代算法技术JTM来了 | 开发者必读(077期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
372 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12064 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13802 0
开发函数计算的正确姿势——tensorflow serving
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。
3177 0
深度回顾!30篇好文,解析历年双十一背后的阿里技术秘籍 | 开发者必读(098期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
851 0
+关注
闲鱼技术
阿里巴巴旗下,闲鱼技术团队官方账号 简历投递:guicai.gxy@alibaba-inc.com
251
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
《2021云上架构与运维峰会演讲合集》
立即下载