如何在PC端測(cè)試轉(zhuǎn)換后的TFLite模型

上篇講述如何把tensorflow模型轉(zhuǎn)換成tflite模型,用于部署到移動(dòng)端。

這篇分享如何在PC端對(duì)tflite模型進(jìn)行預(yù)測(cè),測(cè)試模型是否可用

首先,加載tflite模型,查看模型的輸入輸出

import numpy as np
import tensorflow as tf
import cv2

# Load TFLite model and allocate tensors.
interpreter = tf.lite.Interpreter(model_path="newModel.tflite")
interpreter.allocate_tensors()

input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()

print(input_details)
print(output_details)

打印結(jié)果:

[{'name': 'input_1', 'index': 115, 'shape': array([  1, 224, 224,   3]), 'dtype': <class 'numpy.float32'>, 'quantization': (0.0, 0)}]
[{'name': 'activation_1/truediv', 'index': 6, 'shape': array([    1, 12544,     2]), 'dtype': <class 'numpy.float32'>, 'quantization': (0.0, 0)}]

input details里可看到,需要輸入的numpy數(shù)組 [1, 224, 224, 3],數(shù)據(jù)類型為float32。
index:115的意思,我理解是傳入數(shù)據(jù)放置的位置

于是我們需要這里處理下input的數(shù)據(jù),為了方便,我把數(shù)據(jù)預(yù)存成csv文件了,取出來(lái)能直接使用

input_data = np.loadtxt('C:/Users\WIN10/input.csv',delimiter=',')
input_data = input_data.reshape(1,224,224,3)
input_data = input_data.astype(np.float32)
index = input_details[0]['index']
interpreter.set_tensor(index, input_data)

這樣就把input數(shù)據(jù)設(shè)置好了,并且把數(shù)據(jù)傳入網(wǎng)絡(luò)模型

開(kāi)始做預(yù)測(cè):

interpreter.invoke()

讀出預(yù)測(cè)結(jié)果

output_data = interpreter.get_tensor(output_details[0]['index'])
print('output_data shape:',output_data.shape)

output_data就是預(yù)測(cè)結(jié)果的源數(shù)據(jù),print出來(lái)的shape就是上面output_detail 里的shape[ 1, 12544, 2]

最后還需要對(duì)預(yù)測(cè)的源數(shù)據(jù)進(jìn)行后處理,解析出我們要的結(jié)果,這里每個(gè)工程的都不一樣,僅供參考。

output_data = output_data.reshape(224,112)
pr = output_data.reshape(112,112,2).argmax( axis=2 )
seg_img = np.zeros( ( 112 , 112 , 3  ) )
seg_img[:,:,0] += ((pr[:,: ] == 1 )*200).astype('uint8')
seg_img[:,:,1] += ((pr[:,: ] == 1 )*200).astype('uint8')
seg_img[:,:,2] += ((pr[:,: ] == 1 )*200).astype('uint8')
cv2.imshow('img',seg_img)
cv2.waitKey(0)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容