新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TFLite模型終極開盲盒來(lái)啦!

TFLite模型終極開盲盒來(lái)啦!

作者: 時(shí)間:2024-05-10 來(lái)源:恩智浦MCU加油站 收藏

大家好!前兩期的內(nèi)容,不知道大家是不是都已經(jīng)體驗(yàn)過(guò)了呢~(TFLite模型的開盲盒體驗(yàn) |TFLite模型的開盲盒體驗(yàn)之編輯模型

本文引用地址:http://2s4d.com/article/202405/458557.htm

上期小編帶著大家從源碼開始編譯了一個(gè)叫做的小工具??梢杂脕?lái)實(shí)現(xiàn)對(duì)于TFLite模型格式的解析與生成。然后也帶著大家,手動(dòng)編輯了以下json文件,為模型添加了一個(gè)新的輸出節(jié)點(diǎn):       

圖片.png

相信大家一定不想僅僅局限于手動(dòng)編輯吧?那小編就滿足大家的好奇心,繼續(xù)給大家看看如何利用腳本進(jìn)行自動(dòng)化編輯,用代碼的方式,編譯TFLite模型。

在開始前,先給大家介紹一下何謂JSON格式:

JSON(JavaScript  Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,基于JavaScriptJSON(JavaScript Object  Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,基于JavaScript編程語(yǔ)言的一個(gè)子集。它的主要優(yōu)點(diǎn)包括:

◆ 數(shù)據(jù)格式簡(jiǎn)單,易于讀寫

◆ 格式已壓縮,占用帶寬小

◆ 易于解析,客戶端JavaScript可通過(guò)eval ()進(jìn)行JSON數(shù)據(jù)的讀取

◆ 支持多種語(yǔ)言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP,      Python, Ruby等服務(wù)器端語(yǔ)言,便于服務(wù)器端的解析

◆ PHP-JSON和JSON-PHP已經(jīng)存在PHP領(lǐng)域,偏于PHP序列化后的程序直接調(diào)用,PHP服務(wù)器端的對(duì)象、數(shù)組等能直接生成JSON格式,便于客戶端的訪問(wèn)提取

◆ JSON格式可直接為服務(wù)器端代碼使用,極大簡(jiǎn)化了服務(wù)器端和客戶端的代碼開發(fā)量,且完成任務(wù)不變,并易于維護(hù)

與此同時(shí),JSON也存在一些不足:

◆ 沒(méi)有XML格式推廣和使用的廣泛性,沒(méi)有XML的通用性

◆ 目前在Web Service中推廣還屬于初級(jí)階段

好啦!書歸正傳,我們?cè)谑褂?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/python">python進(jìn)行處理時(shí)就需要用到j(luò)son庫(kù),使用方式很直接,同時(shí)為了保證都進(jìn)來(lái)的json文件中的元素不會(huì)被打亂順序,需要用到OrderedDict:

圖片.png

接下來(lái)就是將json文件讀取進(jìn)來(lái):

圖片.png

不過(guò),此時(shí)直接進(jìn)行讀取,會(huì)報(bào)錯(cuò):

圖片.png

這是因?yàn)?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/flatc">flatc轉(zhuǎn)換出來(lái)的json文件不太符合標(biāo)準(zhǔn),需要進(jìn)行一下修改:

圖片.png

這樣一來(lái),就可以成功打開了:

圖片.png

獲取模型輸出:

圖片.png

可以看到果然是我們上次所修改的0和11:

圖片.png

現(xiàn)在我們就可以直接進(jìn)行修改,將輸出變回去,只有一個(gè)0作為輸出:

圖片.png

重新保存json文件:

圖片.png

利用工具導(dǎo)出tflite格式,模型會(huì)保存成cifar10_new.tflite:

圖片.png

使用模型可視化工具將模型打開:

圖片.png

再檢查下模型輸入輸出參數(shù):

圖片.png

轉(zhuǎn)換成功!這樣我們就可以通過(guò)編寫腳本更加靈活的對(duì)TFLite格式文件進(jìn)行處理。當(dāng)然實(shí)際上是利用python的json庫(kù)對(duì)json文件進(jìn)行處理,間接實(shí)現(xiàn)改造TFLite文件的目的。

至此,全部TFLite模型的開盲盒體驗(yàn)就完結(jié)了。希望大家發(fā)揮想象,使TFLite模型成為自由可編輯的模型格式!加油!

開盲盒第一篇:TFLite模型的開盲盒體驗(yàn) http://2s4d.com/article/202405/458552.htm

開盲盒第二篇:TFLite模型的開盲盒體驗(yàn)之編輯模型 http://2s4d.com/article/202405/458554.htm



關(guān)鍵詞: python joson flatc

評(píng)論


相關(guān)推薦

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

關(guān)閉