前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习笔记TF067:TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集

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

原创
作者头像
利炳根
修改2017-11-16 10:06:42
1.9K0
修改2017-11-16 10:06:42
举报
文章被收录于专栏:利炳根的专栏利炳根的专栏

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 构建只能在自己机器运行二进制文件。

代码语言:javascript
复制
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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档