TFLite模型的開盲盒體驗之編輯模型
上期小編帶著大家一起認識了一下TFLite格式以及它所依賴的flatbuffer技術(shù)(TFLite模型的開盲盒體驗 )。今天,小編帶領(lǐng)大家一起揭開TFLite格式的神秘面紗,看看它到底何許神也,并將如何編輯TFLite模型的分解步驟娓娓道來。
本文引用地址:http://www.ex-cimer.com/article/202405/458554.htm首先,我們要借助一個叫做flatc的小工具,首先從github下載到flatbuffer的源碼:
git clone https://github.com/google/flatbuffers.git
接下來進入flatbuffer目錄,并創(chuàng)建一個名為build的文件夾并進入:
在此目錄下打開Windows PowerShell,并輸入cmake ..:
等待構(gòu)建完成:
現(xiàn)在我們看到build目錄中多出了一些vs工程,雙擊打開FlatBuffers.sln, 并在flatc上右鍵選擇Build:
等待編譯完成:
我們可以在Debug目錄下找到flatc.exe。
目前工具有了,接下來就是處理TFLite模型了,打開模型需要一個schema.fbs文件,只要是電腦中有tensorflow的源碼,就能直接搜到:
接下來輸入以下指令:
flatc.exe -b schema.fbs cifar10.json
可以看到生成一個.json文件:
想必大家還記得上期說到的,TFLite格式的構(gòu)成:包含了操作符(Operator code)、子圖(SubGraph)以及緩沖區(qū)(Buffer)。子圖中定義了模型中的子圖,包括各個Tensor,輸入輸出的Tensor,以及子圖中的各個算子。雙擊打開所生成的json文件:
那么接下來,就不用小編再多說了吧?有了json格式,就可以直接修改了。簡單起見,我們直接將模型的輸出變?yōu)槎鄠€,比如將FullyConnected節(jié)點的輸出也作為模型輸出:
搜索json文件,找到FullyConnected節(jié)點:
輸出標號為11。找到模型的輸出節(jié)點,并將11填進去:
保存文件,將json文件重新生成TFLite格式:
flatc.exe -t schema.fbs -- cifar10.tflite
重新打開cifar10.tflite文件:
可以看到,我們已經(jīng)成功將FullyConnected的輸出作為模型的輸出啦:
轉(zhuǎn)換成功!!! 當然,更加高級的玩法,就請大家自行去挖掘了。小編在這里只是拋磚引玉~
大致思路是先用flatc工具將TFLite模型轉(zhuǎn)換成json文件后,將TFLite模型的修改轉(zhuǎn)換為對json文件進行處理。最后,再通過flatc工具將修改后的json文件重新生成TFLite模型。
相信大家都能改造出屬于自己的TFLite模型,祝大家開盲盒順利??!
開盲盒準備:TFLite模型的開盲盒體驗 http://www.ex-cimer.com/article/202405/458552.htm
開盲盒終極:TFLite模型終極開盲盒來啦! http://www.ex-cimer.com/article/202405/458557.htm
評論