技術(shù)的傳播采用通常是由用戶體驗(yàn)的飛躍引發(fā)的。例如,iPhone 促使智能手機(jī)和“應(yīng)用商店”的快速普及。最近,TensorFlow 的易用性啟動(dòng)了人工智能的大規(guī)模增長(zhǎng),幾乎觸及了我們今天日常生活的方方面面。
OpenVINO工具套件重新定義了采用英特爾技術(shù)設(shè)備上的 AI 推理能力,并獲得了廣大開(kāi)發(fā)人員采用。如今,成千上萬(wàn)的開(kāi)發(fā)人員使用 OpenVINO 工具套件來(lái)加速幾乎所有可以想象到的 AI 推理應(yīng)用場(chǎng)景,從人類視覺(jué)仿真,自動(dòng)語(yǔ)音識(shí)別,自然語(yǔ)言處理,推薦系統(tǒng)等等。該工具包基于最新一代的人工神經(jīng)網(wǎng)絡(luò),包括卷積神經(jīng)網(wǎng)絡(luò) (CNN)、基于循環(huán)和注意力的網(wǎng)絡(luò),擴(kuò)展計(jì)算機(jī)視覺(jué)和非視覺(jué)工作負(fù)載,可跨英特爾 硬件(英特爾 CPU、英特爾集成顯卡 、英特爾 神經(jīng)計(jì)算棒 2 和英特爾 視覺(jué)加速器設(shè)計(jì)與英特爾 Movidius VPU)從而最大限度地提高性能。它通過(guò)從邊緣部署到云的高性能、AI 和深度學(xué)習(xí)推理來(lái)加速應(yīng)用。
我們很榮幸能與客戶/開(kāi)發(fā)者合作,為他們的成功做出貢獻(xiàn)。透過(guò)不斷傾聽(tīng)和創(chuàng)新,以滿足他們不斷變化的需求,同時(shí)也致力于提供世界一流的用戶體驗(yàn)。因此,根據(jù)客戶反饋,在OpenVINO 工具套件的成功基礎(chǔ)上,我們將OpenVINO 與TensorFlow* 集成。
有在涉略 AI 邊緣運(yùn)算的各位們對(duì)于 OpenVINO 應(yīng)該都有基礎(chǔ)的了解:不同框架(如 TensorFlow、PyTorch 等)訓(xùn)練完成的模型文件在經(jīng)由 OpenVINO 轉(zhuǎn)換后可以在不同邊緣運(yùn)算裝置執(zhí)行推理加速。
若筆者告訴各位,現(xiàn)不用經(jīng)過(guò)模型轉(zhuǎn)換可以直接在 TensorFlow 中推理時(shí)完成 OpenVINO 加速呢?
是的你沒(méi)看錯(cuò)!英特爾在 2021 下半年推出的OpenVINO integration with TensorFlow(以下簡(jiǎn)稱OVTF)能夠?qū)崿F(xiàn)在 TensorFlow 中介接 OpenVINO 執(zhí)行推理加速。
OpenVINO x TensorFlow幸福來(lái)得太突然
對(duì) TensorFlow 開(kāi)發(fā)人員的好處:不須轉(zhuǎn)換, 只需加 2 行代碼即可加速其 TensorFlow 模型的推理速度。
OpenVINO 與 TensorFlow* 的集成提供了增強(qiáng) TensorFlow 兼容性所需的 OpenVINO 工具套件內(nèi)聯(lián)優(yōu)化和 run time。它專為使用OpenVINO 工具包的開(kāi)發(fā)人員而設(shè)計(jì) - 幫助提高其推理應(yīng)用程序的性能 - 只需最少的代碼修改。它可以加速各種英特爾 芯片上許多 AI 模型的推理,例如:
英特爾中央處理器
英特爾集成顯卡
英特爾Movidius視覺(jué)處理單元 – 又稱 VPU
采用 8 個(gè)英特爾MovidiusMyriadX VPC 的英特爾視覺(jué)加速器設(shè)計(jì) - 稱為 VAD-M 或 HDDL
利用此集成的開(kāi)發(fā)人員可預(yù)期以下好處:
性能加速- 與原本 TensorFlow 相比(取決于底層硬件配置)
精度– 保持與原始模型幾乎相同的精度。
簡(jiǎn)單性– 繼續(xù)使用 TensorFlow API 進(jìn)行推理。無(wú)需重構(gòu)代碼。只需導(dǎo)入,啟用和設(shè)置設(shè)備。
健壯性– 旨在支持各種操作系統(tǒng) / Python 環(huán)境中的各種 TensorFlow 模型和運(yùn)算符。
無(wú)縫加速- 內(nèi)聯(lián)模型轉(zhuǎn)換 – 無(wú)需模型轉(zhuǎn)換。
輕量級(jí)占用空間– 所需的增量?jī)?nèi)存和磁盤占用空間極小。
支持廣泛的英特爾產(chǎn)品– CPU、iGPU、VPU (Myriad-X)。
注意:為獲得最佳性能、效率、工具定制和硬件控制,我們建議采用本機(jī) OpenVINOAPI 及其run time運(yùn)行。
如何實(shí)現(xiàn)?
開(kāi)發(fā)人員可通過(guò)將以下兩行代碼添加到他們的 Python 代碼或 Jupyter Notebooks 中來(lái)大大加快 TensorFlow 模型的推理。
1import openvino_tensorflow
2openvino_tensorflow.set_backend
('')
支持的后端包括“CPU”,“GPU”,“MYRIAD”和“VAD-M”。參見(jiàn)圖1。
上面第一行嚴(yán)格來(lái)說(shuō)不算指令,只匯入了 OpenVINO整合 TensorFlow 套件。而第二行呼叫了 openvino_tensorflow 設(shè)定后端運(yùn)算硬件的指令,其中帶入的參數(shù)可以設(shè)定為CPU(Intel 處理器)、GPU(Intel 處理器中的集成式顯卡)、MYRIAD(AI加速芯片VPU)等。如此一來(lái)就已完成TensorFlow推理加速了。
示例代碼
以下是OpenVINO與 TensorFlow*集成的示例:
圖 1
它是如何達(dá)成的?
而其特別之處從架構(gòu)圖看來(lái)可以得知在原始 TenorFlow 與 OpenVINOtoolkit 之間多增加了 Operator Capability Manager (OCM)、Graph Partitioner、 TensorFlow Importer 與 Backend Manager,讓前述二者可以渾然天成的結(jié)合在一起。簡(jiǎn)單來(lái)說(shuō)在執(zhí)行推論時(shí)會(huì)對(duì)神經(jīng)網(wǎng)絡(luò)各個(gè)運(yùn)算進(jìn)行判讀,是否能夠透過(guò) OpenVINO進(jìn)行加速,并讓其對(duì)應(yīng)到 OpenVINO的相應(yīng)的運(yùn)算子,最后分配到指定的后端硬件進(jìn)行運(yùn)算,反之若是不行加速的運(yùn)算則讓其返回在 TensorFlow 中處理。
個(gè)別功能作用細(xì)節(jié)可從 github repo 與說(shuō)明文件進(jìn)行深入探究。若不了解這些技術(shù)細(xì)節(jié)也不要緊,參考模型支持文件可以得知各個(gè)TensorFlow模型(包含 TF-Slim Classification、Object Detecion、 TF- Hub 等眾多來(lái)源)的支持程度,或是跟著我們接下來(lái)的步驟進(jìn)行體驗(yàn)一番!
圖2:OpenVINO integration with TensorFlow架構(gòu)圖(https://github.com/openvinotoolkit/openvino_tensorflow/blob/master/docs/ARCHITECTURE.md)
OpenVINO與 TensorFlow*的集成通過(guò)將 TensorFlow 圖有效地劃分為多個(gè)子圖來(lái)提供加速的 TensorFlow 性能,然后將這些子圖調(diào)度到 TensorFlow 運(yùn)行時(shí)或 OpenVINO運(yùn)行時(shí)以實(shí)現(xiàn)最佳加速推理。最終組合出最終的推理結(jié)果。
圖 3:工作流的端到端概述
在邊緣和云端部署
OpenVINO與 TensorFlow 的集成適用于從云到邊緣的各種環(huán)境,只要底層硬件是英特爾平臺(tái)即可。適用于以下云平臺(tái):
面向邊緣的英特爾 DevCloud
https://www.intel.com/content/www/us/en/developer/tools/devcloud/edge/build/ovtfoverview.html
AWS Deep Learning AMI Ubuntu 18 和 Ubuntu 20 on EC2 C5 實(shí)例,針對(duì)推理進(jìn)行優(yōu)化
https://github.com/openvinotoolkit/openvino_tensorflow/blob/master/docs/cloud_instructions/AWS_instructions.md
Azure ML
https://www.intel.com/content/www/us/en/developer/tools/devcloud/edge/build/ovtfoverview.html
谷歌實(shí)驗(yàn)室
https://github.com/openvinotoolkit/openvino_tensorflow/tree/master/examples/notebooks
支持任何基于 AI 的邊緣設(shè)備。
示例在 gitrepo 的示例/ 目錄中提供。
這與使用原生OpenVINO
有何不同
OpenVINO與 TensorFlow*的集成使 TensorFlow 開(kāi)發(fā)人員能夠以非常快速簡(jiǎn)便的方式加速其 TensorFlow 模型推理 - 只需 2 行代碼。OpenVINO模型優(yōu)化器可加速推理性能,以及豐富的集成開(kāi)發(fā)人員工具和高級(jí)功能,但如前所述,為了獲得最佳性能,效率,工具定制和硬件控制,我們建議使用本機(jī) OpenVINOAPI 及 run time 運(yùn)行。
案例
以下客戶正在將 OpenVINO集成用于 TensorFlow 用于各種用例。以下是一些示例
Extreme Vision(極視角):極視角 的 CV MART 等專用 AI 云 https://www.cvmart.net/
可幫助數(shù)十萬(wàn)開(kāi)發(fā)人員提供豐富的服務(wù)、模型和框架目錄,從而在各種英特爾平臺(tái)(如 CPU 和 iGPU)上進(jìn)一步優(yōu)化其 AI 工作負(fù)載。與 AI 框架(如 OpenVINO 與 TensorFlow* 的集成)正確集成的易于使用的開(kāi)發(fā)人員工具包可加速模型,從而提供兩全其美的優(yōu)勢(shì) - 提高推理速度以及以最小的更改重用已創(chuàng)建的 AI 推理代碼的能力。Extreme Vision 團(tuán)隊(duì)正在測(cè)試OpenVINO 與TensorFlow* 的集成,目標(biāo)是在 Extreme Vision 平臺(tái)上為 TensorFlow 開(kāi)發(fā)人員提供支持。
由博德研究所開(kāi)發(fā)的基因組分析工具包(GATK)是世界上使用最廣泛的變體調(diào)用開(kāi)源工具包之一。Terra 是一個(gè)更安全,可擴(kuò)展的開(kāi)源平臺(tái),供生物醫(yī)學(xué)研究人員訪問(wèn)數(shù)據(jù),運(yùn)行分析工具和協(xié)作。基于云的平臺(tái)由麻省理工學(xué)院博德研究所與哈佛大學(xué),微軟和 Verily 共同開(kāi)發(fā)。Terra 平臺(tái)包括 GATK 工具和管道,供研究界運(yùn)行其分析。CNNScoreVariants 是 GATK 中包含的深度學(xué)習(xí)工具之一,它應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)來(lái)過(guò)濾帶注釋的變體。在一篇博客中,Broad Institute 展示了如何使用 OpenVINO 與TensorFlow* 集成來(lái)進(jìn)一步加速 CNNScoreVariants 的推理性能。
結(jié)論
現(xiàn)在,您已了解了其優(yōu)勢(shì)、工作原理、部署環(huán)境以及 OpenVINO與 TensorFlow 的集成與使用原生 OpenVINOAPI 的不同之處,相信你已迫不及待地想親自嘗試將 OpenVINO與 TensorFlow 集成,并在英特爾平臺(tái)上體驗(yàn) AI 模型的推理性能提升。與往常一樣,我們很樂(lè)意聽(tīng)到您對(duì)此集成的反饋,請(qǐng)通過(guò) OpenVINO-tensorflow@intel.com 與我們聯(lián)系或在 gitrepo 中提出問(wèn)題。謝謝!
審核編輯 :李倩
-
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5415瀏覽量
120427 -
tensorflow
+關(guān)注
關(guān)注
13文章
327瀏覽量
60375
原文標(biāo)題:OpenVINO? 整合TensorFlow實(shí)現(xiàn)推理加速 | 開(kāi)發(fā)者實(shí)戰(zhàn)
文章出處:【微信號(hào):英特爾中國(guó),微信公眾號(hào):英特爾中國(guó)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論