`

学习笔记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

分享到:
评论

相关推荐

    tensorflow serving java client

    TensorFlow Serving 是一个灵活、高性能的服务框架,用于部署机器学习模型。它使开发人员能够将训练好的模型快速上线,提供预测服务,而无需关心模型的内部实现细节。在这个场景中,我们关注的是 TensorFlow Serving...

    Python-TensorFlowServing是一款用于为机器学习模型提供灵活高性能服务的系统

    TensorFlow Serving是Google开发的一个开源项目,专门用于将机器学习模型部署到生产环境。这个系统的设计目标是提供一种高效、灵活的方式,使得研究人员和开发者能够快速地更新和迭代他们的模型,同时保持高性能的...

    北大tensorflow学习笔记

    TensorFlow,由Google Brain团队开发,是一款强大的开源软件库,主要用于数值计算和大规模机器学习。在"北大tensorflow学习笔记"中,我们可以深入探索这个广泛应用于学术研究和工业实践的平台。 一、TensorFlow基础...

    tensorflow serving

    ### TensorFlow Serving 关键知识点解析 #### 一、Servables (服务单元) - **定义**: Servables 是 TensorFlow Serving 的核心概念之一,它们为客户端提供运算服务。Servable 的大小和粒度非常灵活,既可以是一个...

    Tfserving_xuyingjie:用tensorflow serving对训练好的模型进行线上部署

    标题 "Tfserving_xuyingjie:用tensorflow serving对训练好的模型进行线上部署" 指的是使用TensorFlow Serving这一工具来实现训练完成的机器学习模型的线上服务化。TensorFlow Serving是Google开源的一个用于生产环境...

    TensorFlow serving部署.txt

    TensorFlow serving部署.涉及几个命令,很方便,大家可以快速尝试一下,把模型快速部署,对外提供RestFul API服务

    keras-and-tensorflow-serving:使用TensorFlow Serving和Flask部署Keras模型

    TensorFlow Serving是一种灵活、高性能的服务,用于在线部署机器学习模型,而Flask则是一个轻量级的Python Web服务器和Web应用框架,适合快速构建API。 首先,我们需要理解Keras模型的保存过程。在Keras中,训练...

    基于tensorflow serving的模型部署方案以及代码.zip

    在当前的IT行业中,深度学习已经成为了人工智能领域的重要支柱,而TensorFlow则是一个广泛使用的开源框架,用于构建和训练复杂的神经网络模型。本教程将详细阐述如何利用TensorFlow Serving进行模型部署,以便在生产...

    Tensorflow serving 可执行文件打包

    与本人博客https://blog.csdn.net/fenbo2013/article/details/89948509所搭配的tensorflow serving 源码编译安装成功的可执行二进制文件。 解压即可使用

    Advanced model deployments with TensorFlow Serving Presentation.pdf

    tensorflow/serving模型部署PDF

    tf_serving_cpp_client:TensorFlow Serving托管的GAN模型的C ++客户端

    TensorFlow预测服务的C ++客户端 存储库包含预测的服务的C ++客户端。 客户端通过gRPC与服务器进行对话,该服务器托管经过培训的GAN模型,如。 前提条件 我已经在Ubuntu 16.04上测试了客户端。 要构建客户端代码,您...

    人工智能Tensorflow笔记大全

    内容仅供参考学习内容仅供参考学习内容仅供参考学习深度学习之TensorFlow笔记资源欢迎来到深度学习的世界,这份TensorFlow笔记资源将成为你掌握人工智能核心概念和技能的得力伴侣。TensorFlow作为开源的机器学习库,...

    tensorflow实战google深度学习框架源码

    《Tensorflow实战Google深度学习框架源码》是一个深入学习资源,包含了从第3章到第10章的源代码,旨在帮助用户理解并熟练运用Tensorflow这一强大的深度学习框架。Tensorflow是由Google开发的开源库,它允许研究人员...

    tensorflow-master.zip

    4. TensorFlow Extended (TFX):一站式端到端机器学习平台,涵盖了数据预处理、模型训练、评估、部署等环节。 六、学习资源 1. TensorFlow官方文档:详尽的API参考和教程。 2. Colab:Google提供的免费在线Jupyter ...

    PyPI 官网下载 | tensorflow_serving_api-2.4.0rc3-py2.py3-none-any.whl

    资源来自pypi官网,解压后可用。 资源全名:tensorflow_serving_api-2.4.0rc3-py2.py3-none-any.whl

    tensorflow1.13.1.rar

    1. **TensorFlow框架**:TensorFlow是一个开源的计算库,它使用数据流图进行数值计算,广泛应用于深度学习领域。其核心概念是张量(tensor),即多维数组,数据通过计算图中的节点流动,完成复杂的数学运算。 2. **...

    TF内核剖析

    9. **分布式训练**:TensorFlow支持分布式训练,通过tf.distribute库,可以轻松地在多台机器上并行执行计算,加速模型训练。 10. **扩展性**:TensorFlow具有丰富的生态系统,包括TensorBoard用于可视化训练过程,...

Global site tag (gtag.js) - Google Analytics