學習筆記TF067:TensorFlow Serving、Flod、計算加速,機器學習評測體系,公開數據集

来源:http://www.cnblogs.com/libinggen/archive/2017/11/14/7835450.html
-Advertisement-
Play Games

TensorFlow Serving https://tensorflow.github.io/serving/ 。 生產環境靈活、高性能機器學習模型服務系統。適合基於實際數據大規模運行,產生多個模型訓練過程。可用於開發環境、生產環境。 模型生命周期管理。模型先數據訓練,逐步產生初步模型,優化模型。 ...


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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!DOCTYPE html><html> <head> <meta charset="utf-8"> </head></html><?php/** * Created by 陳藝赫. * User: Vvvvv * Date: 2017/10/9 * Time: 9:01 *///面向對象//什麼 ...
  • ngrok的使用 1、下載Tomcat並啟動。 2、訪問本地Tomcat,代表啟動Tomcat成功。 3、到https://ngrok.com下載ngrok. 4、下載存放的目錄。 5、命令行進入到該目錄,執行 ngrok http 8080 。 8080是Tomcat預設的埠號。 6、之後就可映 ...
  • 1.1 Python語言介紹 1.1.1 什麼是編程?為什麼要編程 編程 是個動詞,編程==寫代碼,寫代碼為了什麼? 為了讓電腦乾你想要乾的事情,比如,馬化騰想跟別人聊天,於是寫了個聊天軟體,這個軟體就是一堆代碼的集合,這些代碼是什麼?這些代碼是電腦能理解的語言。 例子:你是公司老闆,你有一個員 ...
  • 1.本章內容目錄: 概述 運行時數據區域 程式計數器 java虛擬機棧 本地方法棧 java堆 方法區 運行時常量池 直接記憶體 HotSpot虛擬機對象探秘 對象的創建 對象的記憶體佈局 對象的訪問定位 程式計數器 java虛擬機棧 本地方法棧 java堆 方法區 運行時常量池 直接記憶體 對象的創建 ...
  • 1. 什麼是Spring Spring是一個輕量級的容器,他實現了IOC和非侵入的框架,並提供了AOP的實現方式,提供了持久層事務的支持,其讓java開發模塊化,並且貫穿持久層,邏輯層,表現層,讓每一個模塊都可以獨立分開,降低耦合,提高代碼復用率. 2. Spring的好處 Spring提供了IOC ...
  • 從上到下 #grad { background: -webkit-linear-gradient(red, blue); background: -o-linear-gradient(red, blue); background: -moz-linear-gradient(red, blue); b ...
  • 1. struts2的工作原理 客戶端發送請求 經過一系列的過濾器 FilterDispatcher通過ActionMapper來決定這個REquest需要調用的Action FilterDispather交給ActionProxy 通過ConfigurationManager詢問struts.xm ...
  • 常用命令和使用方法如下: man cat 和 tac cat是正序顯示文件內容 tac是倒敘顯示文件內容 sort 對文件內容排序 uniq 忽略文件中重覆行 history 顯示輸入的歷史命令,一般保存兩千行命令 more more命令,功能類似 cat ,cat命令是整個文件的內容從上到下顯示在 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...