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站搜索-北京迅为RK3588开发板,
公众Hao关注:北京迅为,
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 《玩转鲲鹏DevKit系列》第四期:如何基于鲲鹏平台高效开发?
本文分享自华为云社区《《玩转鲲鹏DevKit系列》第四期:如何基于鲲鹏平台高效开发?》,作者:华为云社区精选 。 在鲲鹏软件新版本迭代或新功能开发过程中,使用鲲鹏DevKit 获得了软件开发效率提升、或者应用性能提升,即为鲲鹏原生开发。 号外! 华为将于202…