一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

TensorFlow Lite 深度解析 | 中文教學視頻

 alayavijnana 2018-06-06

作者:TensorFlow 中國團隊,Google 工程師 Renmin Gu.

最新的中文技術分享視頻來了!本期來自 Google 的工程師 Renmin 為大家?guī)?TensorFlow Lite 的深度解析視頻,主要講述 TensorFlow Lite 模型文件格式,并可視化以幫助大家記憶理解,也包含 TensorFlow Lite 的具體加載運行過程,并給出關鍵的數(shù)據(jù)結(jié)構描述,同樣以可視化的形式呈現(xiàn)給大家。

首先,我們需要在臺式機上設計、訓練出目標模型,并將其轉(zhuǎn)化成 TensorFlow Lite 的格式。接著,此格式文件在 TensorFlow Lite 中會被內(nèi)置了 Neon 指令集的解析器加載到內(nèi)存,并執(zhí)行相應的計算。由于 TensorFlow Lite 對硬件加速接口良好的支持,開發(fā)者可以設計出性能更優(yōu)的 App 供用戶使用。

模型文件格式

Model 結(jié)構體:模型的主結(jié)構

table Model {
   version: uint;
   operator_codes: [OperatorCode];
   subgraphs: [SubGraph];

   description: string;
   buffers: [Buffer]
}

在上面的 Model 結(jié)構體定義中,operator_codes 定義了整個模型的所有算子,subgraphs 定義了所有的子圖。子圖當中,第一個元素是主圖。buffers 屬性則是數(shù)據(jù)存儲區(qū)域,主要存儲的是模型的權重信息。

SubGraph 結(jié)構體:Model 中最重要的部分

table SubGraph {
   tensors: [Tensor];
   inputs: [int];
   outputs: [int];
   operators: [Operator];

   name: string;
}

類似的,tensors 屬性定義了子圖的各個 Tensor,而 inputs 和 outputs 用索引的維護著子圖中 Tensor 與輸入輸出之間的對應關系。剩下的operators 定義了子圖當中的算子。

Tensor 結(jié)構體:包含維度、數(shù)據(jù)類型、Buffer 位置等信息

table Tensor {
   shape: [int];
   type: TensorType;
   buffer: uint;

   name: string;
}

buffer 以索引量的形式,給出了這個 Tensor 需要用到子圖的哪一個 buffer。

Operator 結(jié)構體:SubGraph 中最重要的結(jié)構體

Operator 結(jié)構體定義了子圖的結(jié)構:

table Operator {
   opcode_index: uint;
   inputs: [int];
   outputs: [int];

   ...
}

opcode_index 用索引方式指明該 Operator 對應了哪個算子。 inputs 和 outputs 則是 Tensor 的索引值,指明該 Operator 的輸入輸出信息。

解析器概況

那么 TensorFlow Lite 的解析器又是如何工作的呢?

一開始,終端設備會通過 mmap 以內(nèi)存映射的形式將模型文件載入客戶端內(nèi)存中,其中包含了所有的 Tensor,Operator 和 Buffer 等信息。出于數(shù)據(jù)使用的需要,TensorFlow Lite 會同時創(chuàng)建 Buffer 的只讀區(qū)域和分配可寫 Buffer 區(qū)域。

由于解析器中包含了集體執(zhí)行計算的代碼,這一部分被稱為 Kernel。模型中的各個 Tensor 會被加載為 TfLiteTensor 的格式并集中存放在 TfLiteContext 中。

每個 Tensor 的指針都指向了內(nèi)存中的只讀 Buffer 區(qū)域或是一開始新分配的可寫入 Buffer 區(qū)域。

模型中的 Operator 被重新加載為 TfLiteNode,它包含輸入輸出的 Tensor 索引值。這些 Node 對應的操作符存儲于 TfLiteRegistration 中,它包含了指向 Kernel 的函數(shù)指針。OpResolver 負責維護函數(shù)指針的對應關系。

TensorFlow Lite 加載模型的過程中會確定執(zhí)行 Node 的順序,然后依次執(zhí)行。

大家如果想要更好掌握 TensorFlow Lite 的技術細節(jié),一定要閱讀以下文件:

  • lite/context.h

  • lite/model.h

  • lite/interpreter.h

  • lite/kernels/register.h

希望我們的分享能讓廣大開發(fā)者們對 TensorFlow Lite 的代碼有一個初步認識,期待看到大家精彩的作品!

另外,視頻中提到的 TensorFlow Lite 的代碼位置

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite

模型的模式文件位于:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/schema/schema.fbs

更多

騰訊視頻鏈接:

https://v.qq.com/x/page/h0672e1j6gd.html


在 Google 官方 Bilibili 頻道查看本視頻 ( ゜- ゜)つロ:

https://www.bilibili.com/video/av24219725/


YouTube 播放列表: 'DevBytes 開發(fā)者小技巧'

https://www./playlist?list=PLwv-rHS37fS_f-hjlS7-maXNPcfrPNS8J


Youku 視頻播單: 'DevBytes 開發(fā)者小技巧' 

http://list.youku.com/albumlist/show/id_51314721


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产一级二级三级观看| 国产高清一区二区不卡| 中文字幕人妻av不卡| 亚洲精品国产精品日韩| 国产自拍欧美日韩在线观看| 欧美午夜国产在线观看| 欧美日韩国内一区二区| 日本av一区二区不卡| 亚洲日本韩国一区二区三区| 好吊妞视频只有这里有精品| 中文字幕不卡欧美在线| 蜜桃av人妻精品一区二区三区| 欧美国产日韩变态另类在线看| 丝袜人妻夜夜爽一区二区三区| 亚洲天堂精品在线视频| 亚洲中文字幕人妻av| 亚洲欧洲一区二区中文字幕| 久久精品国产在热久久| 日本人妻精品中文字幕不卡乱码 | 风间中文字幕亚洲一区| 超薄肉色丝袜脚一区二区| 国产午夜精品福利免费不| 亚洲一区二区精品国产av| 精品国产一区二区欧美| 黑人巨大精品欧美一区二区区| 日本欧美在线一区二区三区| 日韩在线精品视频观看| 极品少妇嫩草视频在线观看| 麻豆一区二区三区在线免费| 最近日韩在线免费黄片| 欧美精品激情视频一区| 99国产精品国产精品九九 | 亚洲成人精品免费在线观看| 免费观看日韩一级黄色大片| 深夜福利亚洲高清性感| 欧美成人免费视频午夜色| 黄色片一区二区在线观看| 国产精品亚洲一级av第二区| 成在线人免费视频一区二区| 欧美成人欧美一级乱黄| 91偷拍裸体一区二区三区|