设为首页 加入收藏

TOP

学习笔记TF067:TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集(一)
2017-11-15 09:15:17 】 浏览:319
Tags:学习 笔记 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期。聊天机器人,机器人答句和用户问句应该语义一致,语法正确,逻辑正确。机器人答句应用有趣、多样,不是一直产生安全回答。机器人应该个性表达一致,年龄、身份、出生地基本背景信息、爱好、语言风险应该一致,能想象成一个典型人。

机器翻译评价

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇71、django之Ajax续 下一篇重学Python - Day 07 - python基..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目