Toybrick
标题:
rknn-toolkit 1.3.0 python api如何进行batch inference
[打印本页]
作者:
jfangah
时间:
2020-3-9 11:16
标题:
rknn-toolkit 1.3.0 python api如何进行batch inference
从rknn-toolkit1.3.0的user guide上面看到,使用python api在build rknn模型的时候多了一个rknn_batch_size的参数,意味着可以进行batch inference了。
但是我今天测试的时候,发现了一个问题,以下是描述:
希望版主能改帮忙查找一下问题
rknn-toolkit: 1.3.0
rknn驱动:1.3.0
模型:tensorflow的pb模型,模型输入[160,160,3],模型输出应该是(128,)的结果
问题:单张图的推理时间为0.014s,rknn_batch_size=2时推理时间为0.03s,但是rknn_batch_size=2时的输出结果仍是一张图的结果,不知道从Inference到取得结果的过程中,是否存在一些问题
测试代码:
if __name__ == '__main__':
# Create RKNN object
rknn = RKNN()
# Config for Model Input PreProcess
rknn.config(channel_mean_value='0 0 0 255', reorder_channel='0 1 2')
#rknn.config(channel_mean_value='127.5 127.5 127.5 127.5', reorder_channel='0 1 2', quantized_dtype='asymmetric_quantized-u8')
# Load TensorFlow Model
print('--> Loading model')
rknn.load_tensorflow(tf_pb='./model.pb',
inputs=['input_1'],
outputs=['strided_slice'],
input_size_list=[[160, 160, 3]])
print('done')
# Build Model
print('--> Building model')
rknn.build(do_quantization=True, dataset='./dataset_416x416.txt', pre_compile=True, rknn_batch_size=2)
print('done')
# Export RKNN Model
rknn.export_rknn('./model_1.3_pre_2.rknn')
# Direct Load RKNN Model
rknn.load_rknn('./model_1.3_pre_2.rknn')
# Set inputs
orig_img1 = cv2.imread('./pic1.jpg')
img1 = cv2.cvtColor(orig_img1, cv2.COLOR_BGR2RGB)
img1 = cv2.resize(img1, (160, 160), interpolation=cv2.INTER_CUBIC)
orig_img2 = cv2.imread('./pic2.jpg')
img2 = cv2.cvtColor(orig_img2, cv2.COLOR_BGR2RGB)
img2 = cv2.resize(img2, (160, 160), interpolation=cv2.INTER_CUBIC)
# init runtime environment
print('--> Init runtime environment')
ret = rknn.init_runtime(target='rk1808', device_id='TS018082190800200')
if ret != 0:
print('Init runtime environment failed')
exit(ret)
print('done')
# Inference
print('--> Running model')
s = time.time()
mat = np.array([img1, img2])
outputs = rknn.inference(inputs=[mat])
e= time.time()
print('time:', e-s)
print('done')
print(len(outputs))
print(outputs)
print(outputs[0].shape)
# Release RKNN Context
rknn.release()
作者:
peng
时间:
2020-3-9 17:27
rknn多图推理的结果会存在同一个list中,需要自行把它分离开,可以参考下这个帖子
http://t.rock-chips.com/forum.php?mod=viewthread&tid=929
作者:
呱唧
时间:
2020-3-16 16:36
所以这里rknn_batch_size=2,比rknn_batch_size=1的推理时间的2倍还多一点啊??
欢迎光临 Toybrick (https://t.rock-chips.com/)
Powered by Discuz! X3.3