学习笔记TF067:TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集

TensorFlow Serving https://tensorflow.github.io/serving/

生产环境灵活、高性能机器学习模型服务系统。适合基于实际数据大规模运行,产生多个模型训练过程。可用于开发环境、生产环境。

模型生命周期管理。模型先数据训练,逐步产生初步模型,优化模型。模型多重算法试验,生成模型管理。客户端(Client)向TensorFlow Severing请求模型,TensorFlow Severing返回适当模型给客户端。TensorFlow Serving、gRPC(谷歌公司开源高性能、跨语言RPC框架),提供跨语言RPC接口,不同编程语言都可以访问模型。

TensorFlow Serving代码 https://hithub.com/tensorflow/serving 。源代码Bazel编译安装 https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/setup.md,Docker安装。https://www.tensorflow.org/serving/setup 。结合TensorFlow Serving,训练好模型,创建Docker镜像,推送到Google Container Registry https://cloud.google.com/container-registry/docs/ 。模型在谷歌云平台(Google Cloud Platform)运行。Kubernetes成功部署模型服务。Serving Inception Model with TensorFlow Serving and Kubernetes https://tensorflow.github.ic/serving/serving_inception 。Google ML Engine,全托管TensorFlow平台,训练模型一键转换预测服务。

TensorFlow Flod https://github.com/tensorflow/fold ,《Deep Learning with Dynamic Computation Graphs》https://openreview.net/pdf?id=ryrGawqex 。深度学习过程,模型训练数据预处理,不同结构数据剪裁成相同维度、尺寸,划分成批,进入训练流程。静态图模型,缺点,输入数据无法一般预处理,模型针对不同输入数据建立不同计算图(computation graph)分别训练,没有充分利用处理器、内存、高速缓存。 TensorFlow Fold(现在还出了Eager模式,可以对比学习),根据不同结构输入数据建立动态计算图(dynamic computation),根据每个不同输入数据建立不同计算图。动态批处理(dynamic batching)自动组合计算图,实现输入数据内部批处理,批处理单个输入图内不同节点,不同输入数据间批处理,批处理不同输入图间运算。可插入附加指令在不同批处理操作间移动数据。简化模型训练阶段输入数据预处理过程。CPU模型运行速度提高10倍以上,GPU提高100倍。

TensorFlow计算加速。GPU设备,XLA 框架融合OP,分布式计算、参数部分分布到不同机器,硬件计算,CPU更高级指令集SSE、AVX,FPGA编写支持TensorFlow计算单元。 CPU加速。pip命令安装,与更广泛机器兼容,TensorFlow默认仅在x86机器使用SSE4.1 SIMD指令。源代码安装可以获得最大性能,开启CPU高级指令集支持。bazel 构建只能在自己机器运行二进制文件。

bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.2 --copt=-cuda -k //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

在/tmp/tensorflow_pkg产生whell文件,再用pip命令安装wheel文件。

TPU 加速、FPGA加速。 谷歌TensorFlow设计专用集成芯片-张量处理单元(Tensor Processing Unit,TPU)。CPU逻辑运算(if else)能力很强,计算能力比GPU差,深度学习需要海量计算。GPU有强大浮点计算单元,GPU着色器(shader)对一批数据以相同步调执行相同指令流水。GPU同一时钟周期执行指令数量千级,3000条。CPU同一时钟周期执行指令数据几十级。数据并行能力远超CPU。GPU逻辑运算能力差,流水线并行能力(同一时钟周期并发执行不同逻辑序列能力)差,需要批数据同步调执行相同逻辑。神经网络需要大规模数据并行能力,CNN卷积、矩阵运算操作,通过数据并行大幅提高性能。 GPU出厂后架构固定,硬件原生支持指令固定。如神经网络有GPU不支持指令,无法直接硬件实现,只能软件模拟。FPGA加速,开发者在FPGA里编程,改变FPGA硬件结构。FPGA体系结构不同,不是冯·诺伊曼结构,是代码描述逻辑电路。只要片上逻辑门、引脚够多,全部输入、运算、输出都在一个时钟周期内完成。FPGA一个时钟周期执行一次全部烧好电路,一个模块就一句超复杂“指令”,不同模块不同逻辑序列,序列里就一条指令。不同运算单元硬件直连,数据并行、流水线并行共存(GPU流水线并行能力约0),浮点运算能力不如GPU。适合低延迟预测推理,每批大小较小。 TPU,专用集成电路(application specific integrated circuit,ASIC),硬件逻辑一旦烧写不可再编程,专门为TensorFlow做深度学习开发。TPU目前版本不能完整运行TensorFlow功能,高效预测推理,不涉及训练。

机器学习评测体系。

人脸识别性能指标。 鉴别性能,是否鉴别准确。Top-K识别率,给出前K个结果包含正确结果概率。错误拒绝辨识率(FNIR),注册用户被系统错误辩识为其他注册用户比例。错误接受辩识率(FPIR),非注册用户被系统辨识为某个注册用户比例。 验证性能,验证人脸模型是否足够好。误识率(False Accept Rate,FAR),将其他人误作指定人员概率。拒识率(False Reject Rate,FRR),将指定人员误作其他人员概率。识别速度,识别一副人脸图像时间、识别一个人时间。注册速度,注册一个人时间。

聊天机器人性能指标。 回答正确率、任务完成率、对话回合数、对话时间、系统平均响应时间、错误信息率。评价基本单元,单轮对话。人机对话过程,连续过程。http://sanwen.net/a/hkhptbo.html 《中国人工智能学会通讯》2016年第6卷第1期。聊天机器人,机器人答句和用户问句应该语义一致,语法正确,逻辑正确。机器人答句应用有趣、多样,不是一直产生安全回答。机器人应该个性表达一致,年龄、身份、出生地基本背景信息、爱好、语言风险应该一致,能想象成一个典型人。

机器翻译评价方法。 BLEU(bilingual evaluation understudy)方法,2002年,IBM沃森研究中心提出。机器翻译语句与人类专业翻译语句越接近越好。下人工评价高度相关。正确句子作参考译文(reference)、正确句子(golden sentence),测试句子作候选译文(candidate)。适用测试语料具有多个参考译文。比较参考译文与候选译文相同片段数量,参考译文连续出现N元组(N个单词或字)与候选译文N元组比较,n单位片段(n-gram)比较。计算完全匹配N元组个数与参考译文N元组总个数比例。与位置无关。匹配片段数越多,候选译文质量越好。 METEOR,不仅要求候选译文在整个句子上,在句子分段级别上,都要与参考译文更接近。https://en.wikipedia.org/wiki/METEOR#Algorithm 。在待评价字符串与参考文符串间创建平面图。待评价翻译每个一元组必须映射到参考翻译1个或0个一元组。选择映射交叉数据较少的。

常用通用评价指标。 准确率、召回率、F值、ROC、AUC、AP、mAP。 ROC(Receiver Operating Characteristic,受试者工作特征曲线)、AUC(Area Under roc Curve,曲线下面积),评价分类器指标。ROC曲线横坐标FPR(False positive rate),纵坐标TPR(True positive rate)。ROC曲线越接近左上角,分类器性能越好。AUC,ROC曲线下方面积大小。ROC曲线处于y=x直线上方,AUC值介于0.5~1.0。AUC值越大表示性能越好。专门AUC计算工具 http://mark.goadrich.com/programs/AUC/ 。 AP(average precision,平均准确性)、mAP(mean average precision,平均准确性平均)。计算机视觉,分类问题,AP模型分类能力重要指标。只用P(precision rate, 准确率)和R(recall rate,召回率)评价,组成PR曲线趋势召回率越高准确率越低。AP曲线下面积,等于对召回率做积分。mAP对所有类别取平均,每个类作一次二分类任务。图像分类论文基本用mAP标准。

公开数据集。

图片数据集。 ImageNet http://www.image-net.org/ 。世界最大图像识别数据集,14197122张图像,斯坦福大学视觉实验室终身教授李飞飞创立。每年ImageNet大赛是国际计算机视觉顶级赛事。 COCO http://mscoco.org/ 。微软创立,分割、加字幕标注数据集。目标分割,通过上下文进行识别,每个图像包含多个目标对象,超过300000图像,超过2000000实例,80种对象,每个图像包含5个字幕,包含100000个人关键点。 CIFAR(Canada Institude For Advanced Research) https://www.cifar.ca/ 。加拿大先进技术研究院收集。8000万小图片数据集。包含CIFAR-10、CIFAR-100两个数据集。CIFAR-10,60000张32x32 RGB彩色图片,共10个类别,50000张训练,10000张测试(交叉验证)。CIFAR-100,60000张图像,100个类别,每个类别600张图像,500张训练,100张测试。20个大类,每个图像包含小类别、大类别两个标记。

人脸数据集。 AFLW(Annotated Facial Landmarks in the Wild) http://lrs.icg.tugraz.at/research/aflw/,从Flickr收集带标注面部图像大规模wyskwgk,各种姿态、表情、光照、种族、性别、年龄因素影响图片,25000万手工标注人脸图片,每个人脸标注21个特征点,大多数彩色,59%女性,41%男性。非常适合人脸识别、人脸检测、人脸对齐。 LFW(Labeled Faces in the Wild Home) http://vis-www.cs.umass.edu/lfw/ 。美国马萨诸塞大学阿姆斯特分校计算机视觉实验室整理。13233张图片,5749人,4096人只有一张图片,1680个多于一张。用于研究非受限情形人脸识别问题。人脸外形不稳定,面部表情、观察角度、光照条件、室内室外、遮盖物(口罩、眼镜、帽子)、年龄影响。为学术界评价识别性能标准(benchmark)。 GENKI http://mplab.ucsd.edu ,加利福尼亚大学收集。包含GENKI-R2009a、GENKI-4K、GENKI-SZSL。GENKI-R2009a,11159图片。GENKI-4K,4000图片,笑与不笑两类,每个图片人脸姿势、头转动标注角度,专用笑脸识别。GENKI-SZSL,3500图像,广泛背景、光照条件、地理位置、个人身份、种族。 VGG Face http://www.robots.ox.ac.uk/~vgg/data/vgg_face/ 。2622个不同人,每个人1000张图片,训练人脸识别大数据集。 CelebA(Large-scale CelebFaces Atributes,大规模名人人脸标注数据集) http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html 。10177个名人,202599张名人图像,每张图像40个属性标注。

视频数据集。 YouTube-8M https://research.google.com/youtube8m/ 。800万个YouTube视频URL,50万小时长度视频,带有视频标注。

问答数据集。 MS MARCO(Microsoft Machine Reading Comprehension) http://www.msmarco.org 。微软发布,10万个问题和答案数据集。创建像人类一样阅读、回答问题系统。基于匿名真实数据构建。 康奈尔大学电影对白数据集 https://www.cs.cornell.edu/~cristian/Cornell_Movie-Dialogs_Corpus.html 。600部好莱坞电影对白。

自动驾驶数据集。 法国国家信息与自动化研究所行人数据集(INRIA Person Dataset) http://pascal.inrialpes.fr/data/human/ 。作为图像和视频中直立人检测研究工作一部分收集。图片两种格式,一具有对应注释文件原始图像,二具有原始图像经过正规化处理64x128像素正像。图片分只有车、只有人、有车有人、无车无人4个类别。 KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute) http://www.cvlibs.net/datasets/kitti/ 。车辆数据集,7481个训练图片、7518个测试图片。标注车辆类型、是否截断、遮挡情况、角度值、二维和三维框、位置、旋转角度。

年龄、性别数据集。 Adience 数据集 http://www.openu.ac.il/home/hassner/Adience/data.html 。来源Flickr相册。用户用智能手机设备拍摄,2284类别,26580张图片。保留光照、姿势、噪声影响。性别、年龄估计、人脸检测。

参考资料: 《TensorFlow技术解析与实战》

欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【谷歌大脑力作】RNN最新技术:注意力增强 RNN,四大模型

【新智元导读】谷歌大脑团队的Chris Olah & Shan Carter 整理了 2016 年递归神经网络(RNN)的发展,总结了神经图灵机、注意力界面、自...

3485
来自专栏杨熹的专栏

机器学习&人工智能博文链接汇总

? 争取每天更新 ? 126 ? ---- 蜗牛的历程: [入门问题] [机器学习] [聊天机器人] [好玩儿的人工智能应用实例] [Tensor...

3426
来自专栏新智元

算力节省240倍!上交大、MIT新方法低成本达到谷歌AutoML性能

【新智元导读】利用机器学习技术代替人类专家来自动设计神经网络架构近期成为了一个热门研究话题。上海交大和MIT的研究团队提出一种新的高效神经架构搜索方法,解决了当...

742
来自专栏专知

Facebook AI发布新版本FairSeq序列到序列(Seq2Seq)学习工具,可生成故事与快速推断

【导读】Facebook AI Research发布(PyTorch)序列到序列学习工具集fairseq新版本:实现“Scaling Neural Machin...

1365
来自专栏人工智能

一种用于人脸检测的设备上的深度神经网络

苹果公司开始在iOS 10中使用深度学习进行人脸检测。随着Vision框架的发布,开发人员现在可以在他们的应用程序中使用这种技术和许多其他计算机视觉算法。本文讨...

5791
来自专栏AI科技大本营的专栏

实战 | 让机器人替你聊天,还不被人看出破绽?来,手把手教你训练一个克隆版的你

编译 | AI科技大本营(rgznai100) 参与 | 史天 聊天机器人到底是什么呢?说白了,就是计算机程序通过听觉或文本方法进行对话。 当今最流行的四个对话...

3618
来自专栏企鹅号快讯

机器视觉技术原理解析及应用领域

01 简介 机器视觉是一项综合技术,包括图像处理、机械工程技术、控制、电光源照明、光学成像、传感器、模拟与数字视频技术、计算机软硬件技术(图像增强和分析算法、图...

3516
来自专栏机器之心

业界 | 谷歌开源高效的移动端视觉识别模型:MobileNet

选自Google Research 机器之心编译 参与:蒋思源 近日,谷歌开源了 MobileNet,它一个支持多种视觉识别任务的轻量级模型,还能高效地在移动...

2776
来自专栏测试开发架构之路

全息投影技术及其实现(附素材下载)

免责声明:文章部分内容来源于友站。 (编译:Torres)我们都一直期待能够用智能手机来投射出全息影像,不过显然现在的智能手机早就具备这样的潜质,只不过你还不知...

41612
来自专栏机器之心

教程 | 使用深度学习进行医疗影像分析:文件格式篇

选自Medium 作者:Taposh Dutta-Roy 机器之心编译 参与:Nurhachu Null、李泽南 今年 3 月,英伟达的 GTC 2017 大会...

2746

扫码关注云+社区