當前位置:網站首頁>Tensor Flow PB文件量化到TFLITE
Tensor Flow PB文件量化到TFLITE
2022-01-28 01:27:09 【17歲boy想當攻城獅】
代碼非常簡單,相關代碼都有注釋,關於representative_dataset的作用可以參考這篇文章:Tensor Flow量化裏representative_dataset參數是什麼意思?_17歲boy的博客-CSDN博客
import tensorflow as tf
import io
import PIL
import numpy as np
def rep():
#需要是驗證集的數據源
record_iterator = tf.python_io.tf_record_iterator(path='/home/zhihao/models/research/slim/ci_data/cifar10_train.tfrecord')
count = 0
#將圖像從protobu取出來量化成數組
for string_record in record_iterator:
example = tf.train.Example()
example.ParseFromString(string_record)
#這裏是你存放圖像數據的消息協議名
image_stream = io.BytesIO(example.features.feature['image/encoded'].bytes_list.value[0])
image = PIL.Image.open(image_stream)
#這裏將它固定量化成96x96的數組大小,這樣方便優化
image = image.resize((96,96))
#量化,L=灰度圖,1個bit錶示三個像素點
image = image.convert('L')
array = np.array(image)
array = np.expand_dims(array,axis=2)
array = np.expand_dims(array,axis=0)
array = ((array / 127.5) - 1.0).astype(np.float32)
yield([array])
count += 1
#最大量化三百張
if count > 300:
break
#你的PB文件,這個文件要是包含神經網絡權重的PB文件
converter = tf.lite.TFLiteConverter.from_frozen_graph('/home/zhihao/work/freezed_cifarnet.pb',['input'],['MobilenetV1/Predictions/Reshape_1'])
converter.inference_input_type = tf.lite.constants.INT8
converter.inference_output_type = tf.lite.constants.INT8
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = rep
#量化並保存
tflite_quant_model = converter.convert()
open("test.tflite","wb").write(tflite_quant_model)
版權聲明
本文為[17歲boy想當攻城獅]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201280127094455.html
邊欄推薦
猜你喜歡
隨機推薦
- MySQL-5.7.36安裝遇到坑之後的整理,刻入骨髓的1045
- leader epoch
- 圖的著色問題
- Wireshark實驗四:UDP
- 面試面到自閉,職場反思,原來是我沒有掌握其中精髓
- 遞歸以及for循環裏async 和 await 的用法
- 大人重疾險想保終身重疾,買哪個產品最合適啊?
- php使用openssl_encrypt和openssl_decrypt進行AES加密解密
- CV in Transformer學習筆記(持續更新)
- ctf,show msic入門
- 網絡文件系統
- Js基礎_作用域
- 《滲透測試具體流程》
- flask入門教程(7) - 會話
- 【電子技術】什麼是循環冗餘碼CRC
- Endnote使用方法——檢查參考文獻
- Anconda 學習
- LeetCode 7.整數反轉
- 【ISO15765_UDS&OBD診斷】-02-Network layer網絡層介紹
- C 練習實例90
- 小程序雲開發——雲數據庫的增删查改(2)
- 五、OpenGL ES 三維圖形的初探
- 適合10歲小孩投保的保險產品都有什麼啊?少兒險可以買哪些險種?
- Material Design 3 全新的進階版本UI庫
- 登錄令牌JWT — JSON WEB TOKEN
- Leetcode 算法面試沖刺 實戰 五(數組與循環)(十二)
- 兩種方法,word文件轉換成PDF文件
- 有符號數(signed) 和 無符號數(unsigned)
- [機器學習算法面試題] 一.准確率Accuracy的局限性
- String類常用方法示例
- 各大直播平臺主播的收入計算方式是怎樣的?
- 工程師必須知道的幾個原則
- 細品事務機制(一)
- 邏輯樹分析方法:如何將複雜問題變簡單?
- DCGAN 源碼解析
- 李宏毅《機器學習》| 神經網絡訓練不起來怎麼辦(下)
- 2021年P氣瓶充裝考試及P氣瓶充裝試題及解析
- 2021年G2電站鍋爐司爐考試題庫及G2電站鍋爐司爐考試試卷
- Go 自定義日期時間格式解析解决方案 - 解决 `parsing time xx as xx: cannot parse xx as xx` 錯誤
- 『淺入淺出』MySQL 和 InnoDB