新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > TFLite模型的開盲盒體驗(yàn)之編輯模型

TFLite模型的開盲盒體驗(yàn)之編輯模型

作者: 時間:2024-05-10 來源:恩智浦MCU加油站 收藏

上期小編帶著大家一起認(rèn)識了一下TFLite格式以及它所依賴的技術(shù)(TFLite模型的開盲盒體驗(yàn) )。今天,小編帶領(lǐng)大家一起揭開TFLite格式的神秘面紗,看看它到底何許神也,并將如何編輯TFLite模型的分解步驟娓娓道來。

本文引用地址:http://www.butianyuan.cn/article/202405/458554.htm

首先,我們要借助一個叫做flatc的小工具,首先從github下載到的源碼:

git clone https://github.com/google/s.git

接下來進(jìn)入flatbuffer目錄,并創(chuàng)建一個名為build的文件夾并進(jìn)入:

圖片.png

在此目錄下打開Windows PowerShell,并輸入cmake ..:

圖片.png

等待構(gòu)建完成:

圖片.png

現(xiàn)在我們看到build目錄中多出了一些vs工程,雙擊打開FlatBuffers.sln, 并在flatc上右鍵選擇Build:

圖片.png

等待編譯完成:

圖片.png

我們可以在Debug目錄下找到flatc.exe。

目前工具有了,接下來就是處理TFLite模型了,打開模型需要一個schema.fbs文件,只要是電腦中有tensorflow的源碼,就能直接搜到:

圖片.png

接下來輸入以下指令:

flatc.exe -b schema.fbs cifar10.

可以看到生成一個.文件:

圖片.png

想必大家還記得上期說到的,TFLite格式的構(gòu)成:包含了操作符(Operator   code)、子圖(SubGraph)以及緩沖區(qū)(Buffer)。子圖中定義了模型中的子圖,包括各個Tensor,輸入輸出的Tensor,以及子圖中的各個算子。雙擊打開所生成的文件:

圖片.png

那么接下來,就不用小編再多說了吧?有了json格式,就可以直接修改了。簡單起見,我們直接將模型的輸出變?yōu)槎鄠€,比如將FullyConnected節(jié)點(diǎn)的輸出也作為模型輸出:

圖片.png

搜索json文件,找到FullyConnected節(jié)點(diǎn):

圖片.png

輸出標(biāo)號為11。找到模型的輸出節(jié)點(diǎn),并將11填進(jìn)去:

圖片.png

保存文件,將json文件重新生成TFLite格式:

flatc.exe -t schema.fbs -- cifar10.tflite

重新打開cifar10.tflite文件:

圖片.png

可以看到,我們已經(jīng)成功將FullyConnected的輸出作為模型的輸出啦:

圖片.png

轉(zhuǎn)換成功!!! 當(dāng)然,更加高級的玩法,就請大家自行去挖掘了。小編在這里只是拋磚引玉~

大致思路是先用flatc工具將TFLite模型轉(zhuǎn)換成json文件后,將TFLite模型的修改轉(zhuǎn)換為對json文件進(jìn)行處理。最后,再通過flatc工具將修改后的json文件重新生成TFLite模型。

相信大家都能改造出屬于自己的TFLite模型,祝大家開盲盒順利??!

開盲盒準(zhǔn)備:TFLite模型的開盲盒體驗(yàn) http://www.butianyuan.cn/article/202405/458552.htm

開盲盒終極:TFLite模型終極開盲盒來啦! http://www.butianyuan.cn/article/202405/458557.htm



關(guān)鍵詞: flatbuffer NXP json

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉