Toybrick

标题: 请问rknntoolkit量化时可以输入非图片数据吗,比如含有12个.... [打印本页]

作者: kwzs    时间: 2021-8-24 18:36
标题: 请问rknntoolkit量化时可以输入非图片数据吗,比如含有12个....
通常量化时要指定方图片路径的dataset.txt 但我的网络输入是一个320x320x12通道的数据 请问这种情况如何量化?
作者: jefferyzhang    时间: 2021-8-24 19:34
看下toolkit的文档,里头都有说,可以量化输入np格式文件的
作者: kwzs    时间: 2021-8-25 11:39
jefferyzhang 发表于 2021-8-24 19:34
看下toolkit的文档,里头都有说,可以量化输入np格式文件的

感谢版主回复!
请问我np文件中使用NHWC吗?也就是说我每个文件中是[1, 320, 320, 12] 是这样的吗?
作者: jefferyzhang    时间: 2021-8-25 11:46
kwzs 发表于 2021-8-25 11:39
感谢版主回复!
请问我np文件中使用NHWC吗?也就是说我每个文件中是[1, 320, 320, 12] 是这样的吗? ...

请参看文档。我自己没玩过。
作者: kwzs    时间: 2021-8-25 15:12
本帖最后由 kwzs 于 2021-8-25 16:19 编辑
jefferyzhang 发表于 2021-8-24 19:34
看下toolkit的文档,里头都有说,可以量化输入np格式文件的

非常感谢!我改成1 320 320 12,后来就报了这个错:
E TypeError: Input 'y' of 'Add' Op has type int32 that does not match type float32 of argument 'x'.
输入的图不需要预先做mean_values和std_values吧?

作者: jefferyzhang    时间: 2021-8-25 16:19
kwzs 发表于 2021-8-25 15:12
非常感谢!我改成1 320 320 12,后来就报了这个错:
E TypeError: Input 'y' of 'Add' Op has type int32  ...

E TypeError: Input 'y' of 'Add' Op has type int32 that does not match type float32 of argument 'x'.
不都写了问题了么
作者: kwzs    时间: 2021-8-25 16:24
本帖最后由 kwzs 于 2021-8-25 16:25 编辑
jefferyzhang 发表于 2021-8-25 16:19
E TypeError: Input 'y' of 'Add' Op has type int32 that does not match type float32 of argument 'x' ...

是的 但是更改np数据格式没有用 一开始是int 后来改成float32还是报这个错
reorder_channel不需要改吧?
并且 在文档里只找到一个问题说这块

作者: kwzs    时间: 2021-8-27 10:08
jefferyzhang 发表于 2021-8-25 16:19
E TypeError: Input 'y' of 'Add' Op has type int32 that does not match type float32 of argument 'x' ...

我现在正常量化一个torch1.6训练的更改focus层的yolov5模型 也是报
TypeError: Input 'y' of 'Add' Op has type int32 that does not match type float32 of argument 'x'.
错误位置在
ValueError: Tensor conversion requested dtype float32 for Tensor with dtype int32: 'Tensor("var_at_input.18_7_8_1/cond/Merge:0", shape=(1, 1, 1, 1), dtype=int32, device=/device:CPU:0)'
这个问题,但是我无法定位到哪里出错,我的设置:
rknn = RKNN()

    # pre-process config
    print('--> config model')
    rknn.config(
        mean_values=[[0.0, 0.0, 0.0]],
        std_values=[[255., 255., 255.]],
        reorder_channel='1 2 0',  # bgr2rgb
        target_platform='rv1126',
    )
    print('done')

    # Load pytorch model
    print('--> Loading model')
    ret = rknn.load_pytorch(model=model_path, input_size_list=input_size_list)
    if ret != 0:
        print('Load pytorch model failed!')
        exit(ret)
    print('done')

    # Build model
    print('--> Building model')
    ret = rknn.build(do_quantization=False, dataset='./dataset_640.txt')
    if ret != 0:
        print('Build pytorch failed!')
        exit(ret)
    print('done')
基本没错吧,我把do_quantization=True就报上面的问题,麻烦您帮我看一下




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