rknn-toolkit2 icon indicating copy to clipboard operation
rknn-toolkit2 copied to clipboard

free(): double free detected in tcache 2

Open Crazylov3 opened this issue 2 years ago • 0 comments

I am working with bilstm model in pytorch and I want to convert it to rknn in order to run in RK3588. Since rknn_2 havent support lstm yet. So I convert it to onnx (according to doc, lstm in onnx is supported). However, I got stuck when build rknn model. The bug:

I sparse weight ...
I sparse weight done.
I 
I rknn building ...
I RKNN: librknnc version: 1.3.0 (c193be371@2022-05-04T20:23:58)
D RKNN: [13:22:35.828] RKNN is invoked
free(): double free detected in tcache 2
Aborted (core dumped)

Here is my code:

import os
import traceback
import time
import numpy as np

from rknn.api import RKNN

ONNX_MODEL = "./weights/test.onnx"
RKNN_MODEL = "./weights/test.rknn"

if __name__ == "__main__":
    rknn = RKNN(verbose=True)
    rknn.config(target_platform="rk3588s")
    if not os.path.exists(ONNX_MODEL):
        print("ONNX model file not found: " + ONNX_MODEL)
        exit(1)

    ret = rknn.load_onnx(ONNX_MODEL)
    if ret != 0:
        print("load onnx model failed")
        exit(ret)

    ret = rknn.build(do_quantization=False, dataset="./rknn_modules/dataset.txt")
    print("build model: {}".format(ret))
    if ret != 0:
        print("Build RKNN failed")
        exit(ret)

    ret = rknn.export_rknn(RKNN_MODEL)
    if ret != 0:
        print("Export rknn failed")
        exit(ret)

    inp = np.ones((1, 8000))
    ret = rknn.init_runtime()
    if ret != 0:
        print("Fail to init runtime")
        exit(ret)
    out = rknn.inferece(inputs=[inp])
    print(out)
    print(out.shape)

Here is my onnx model: https://drive.google.com/file/d/1eDCpRxAl0qkaNhEM5zIYVZ8XvEv2KybR/view?usp=sharing

Crazylov3 avatar Aug 10 '22 06:08 Crazylov3