新闻  |   论坛  |   博客  |   在线研讨会
迅为RK3588开发板使用 tflite 框架
红李亚 | 2023-10-10 14:28:25    阅读:149   发布文章

1 TensorFlow Lite 是 TensorFlow 移动和嵌入式设备轻量级解决方案。它使设备机器学习具有低延迟和更小的二进制体积。TensorFlow Lite 同时支持 Android 神经网络 API 的硬件加速。
TensorFlow Lite 使用多项技术降低延迟,例如移动 app 内核优化、pre-fused 激活、允许更快更小(定点)模型的量化内核。
2 现在选择 tflite 作为我们的人工智能框架。输入以下命令:
cd examples/tflite

3 MobileNet 是基于深度级可分离卷积构建的网络,其实这种结构最早是出现在 GoogleNet v3的 inception 中,它是将标准卷积拆分为了两个操作:深度卷积(depthwise convolution) 和逐点

卷积(pointwise convolution),Depthwise convolution 和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而 depthwise convolution 针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说 depthwise convolution 是 depth级别的操作。我们选择 mobilenet_v1 做进一步的测试,输入以下命令:

cd mobilenet_v1

4 打开 test.py,确认使用板载 npu 推理识别图片

vi test.py

修改 test.py 文件,我们修改对应的平台为 rk3588,修改如下所示,“-”代表需要删除的内容,“+” 代表需要新增的内容。
if __name__ == '__main__':
# Create RKNN object - rknn = RKNN(verbose=True)
+ rknn = RKNN()
# Pre-process config
print('--> Config model')
- rknn.config(mean_values=[128, 128, 128], std_values=[128, 128, 128])
+ rknn.config(mean_values=[128, 128, 128], std_values=[128, 128, 128], target_platform='rk3588')
print('done')
# Load model
@@ -62,7 +62,7 @@ if __name__ == '__main__':
# Init runtime environment
print('--> Init runtime environment')
- ret = rknn.init_runtime()
+ ret = rknn.init_runtime(target='rk3588')
if ret != 0:
print('Init runtime environment failed!')
exit(ret)
修改完,保存文件并退出。
5 进入到 examples/tflite/mobilenet_v1 文件夹,输入以下命令,执行模型转换和推理模型的test.py 脚本。
python3 test.py

6 运行结果如下图所示。TOP5 记录了推理结果,其中概率最高也就是 0.935,对应第 156 个标签的物体

更多文档可以查看

B站搜索-北京迅为RK3568开发板,

公众Hao关注:北京迅为,


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客