Toybrick

标题: 1808S0 升级不了rknn的api版本 [打印本页]

作者: starrynight    时间: 2020-12-24 06:46
标题: 1808S0 升级不了rknn的api版本
当前API版本1.2.0,DRV版本1.4.0. sudo dnf update 后没变化
D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.2.0 (1190a71 build: 2019-09-25 12:30:47)
D RKNNAPI:   DRV: 1.4.0 (b4a8096 build: 2020-09-14 11:15:57)
D RKNNAPI: ==============================================

[toybrick@rk1808 ~]$ cat /proc/version
Linux version 4.4.189 (jiang@inno) (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #4 SMP PREEMPT Fri Oct 23 10:28:52 CST 2020

[toybrick@rk1808 ~]$ rpm -qa |grep toybrick-server
toybrick-server-1.5.2-0.rk1808.fc28.aarch64

[toybrick@rk1808 ~]$ sudo dnf update -y
Last metadata expiration check: 0:00:00 ago on Wed 23 Dec 2020 10:44:39 PM EST.
Dependencies resolved.
Nothing to do.
Complete!

不知道是不是api版本和drv版本不一致,导致的yolov3和转换后的rknn模型推理输出不一致。求指导,先排除是不是这个原因。


作者: jefferyzhang    时间: 2020-12-24 08:54
API版本是看你运行的客户端程序的,如果你跑rknn-toolkit,那就是toolkit版本要上去。
跑C API,那你link的so版本要上去。
只有DRV是跟固件相关的。
作者: starrynight    时间: 2020-12-24 10:52
jefferyzhang 发表于 2020-12-24 08:54
API版本是看你运行的客户端程序的,如果你跑rknn-toolkit,那就是toolkit版本要上去。
跑C API,那你link的 ...

跑的rknn-toolkit, 升到1.4.0后。init_runtime有报错:找不到模块。rknn.list_devices()是能查到的。

*************************
all device(s) with ntb mode:
TS018083201100586
*************************
--> Loading model
done
--> Init runtime environment
D target set by user is: rk1808
E Catch exception when init runtime!
E Traceback (most recent call last):
E   File "rknn\api\rknn_base.py", line 1128, in rknn.api.rknn_base.RKNNBase.init_runtime
E   File "rknn\api\rknn_runtime.py", line 160, in rknn.api.rknn_runtime.RKNNRuntime.__init__
E   File "rknn\api\rknn_runtime.py", line 225, in rknn.api.rknn_runtime.RKNNRuntime._load_library
E   File "D:\anaconda3\envs\py_3_6_8_toybrick\lib\ctypes\__init__.py", line 348, in __init__
E     self._handle = _dlopen(self._name, mode)
E OSError: [WinError 126] 找不到指定的模块。
E Current device id is: TS018083201100586
E Devices connected:
E ['TS018083201100586']
Init runtime environment failed

相关代码:
    # Create RKNN Object
    rknn = RKNN(verbose=True)

    # Get devices list
    rknn.list_devices()

    # Load model
    print('--> Loading model')
    ret = rknn.load_rknn(path='./yolov3.rknn')
    if ret != 0:
        print('Load model failed!')
        exit(ret)
    print('done')

    # init runtime environment
    print('--> Init runtime environment')
    ret = rknn.init_runtime(target='rk1808', device_id='TS018083201100586')
    if ret != 0:
        print('Init runtime environment failed')
        exit(ret)
    print('done')

作者: jefferyzhang    时间: 2020-12-24 11:01
你这明显是上位机环境装的有问题,请按对应的环境安装不同版本的rknn-toolkit
https://github.com/rockchip-linux/rknn-toolkit
作者: starrynight    时间: 2020-12-24 13:05
jefferyzhang 发表于 2020-12-24 11:01
你这明显是上位机环境装的有问题,请按对应的环境安装不同版本的rknn-toolkit
https://github.com/rockchip ...

谢谢提示,已解决。




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3