Toybrick

标题: 输入是24*24*15的模型转换问题 [打印本页]

作者: zhuhairong    时间: 2019-6-4 09:44
标题: 输入是24*24*15的模型转换问题
本帖最后由 zhuhairong 于 2019-6-4 18:15 编辑

我的模型输入是24*24*15,实际是5个24*24*3的图片,合并成 24*24*15的数据。转换后的模型推理得到的结果都是错误的,请问15 channels的输入转换要注意什么?哪里出了问题?

现在通过以下py脚本转换模型:
if __name__ == '__main__':
    rknn = RKNN()
    rknn.config(channel_mean_value='127.5 127.5 127.5 128', reorder_channel='2 1 0')

    ret = rknn.load_caffe(model='./det4.prototxt',
                          proto='caffe',
                          blobs='./det4.caffemodel')
    if ret != 0:
        print('Load mobilenet_v2 failed! Ret = {}'.format(ret))
        exit(ret)

    ret = rknn.build(do_quantization=Trup, dataset='./dataset4.txt')
    if ret != 0:
        print('Build det4 failed!')
        exit(ret)
ret = rknn.export_rknn('./det4.rknn')
    if ret != 0:
        print('Export det4.rknn failed!')
        exit(ret)




作者: jefferyzhang    时间: 2019-6-5 17:50
rknn输入如果是24x24x15,请不要用rknn的归一化,channel_mean_value设成‘0 0 0 1’
自行归一化后再送入模型
作者: zhuhairong    时间: 2019-6-6 07:56
本帖最后由 zhuhairong 于 2019-6-6 08:24 编辑
jefferyzhang 发表于 2019-6-5 17:50
rknn输入如果是24x24x15,请不要用rknn的归一化,channel_mean_value设成‘0 0 0 1’
自行归一化后再送入模 ...

多谢,请问 reorder_channel  这个有影响吗?  15 channels, “2 1 0” ?还有是否需要量化?

作者: jefferyzhang    时间: 2019-6-6 08:53
zhuhairong 发表于 2019-6-6 07:56
多谢,请问 reorder_channel  这个有影响吗?  15 channels, “2 1 0” ?还有是否需要量化?
...

量化的话送入的图片也必须是处理成24x24x15的,而不是24x24x3的。
2 1 0没有意义,建议不要设置他试试。
可以先不量化来测试结果
作者: zhuhairong    时间: 2019-6-6 09:22
本帖最后由 zhuhairong 于 2019-6-6 11:41 编辑
jefferyzhang 发表于 2019-6-6 08:53
量化的话送入的图片也必须是处理成24x24x15的,而不是24x24x3的。
2 1 0没有意义,建议不要设置他试试。
...

我的模型没有量化,因为归一化要自己做所以输入就是float的;input打印:index=0 name= n_dims=4 dims=[1 15 24 24] n_elems=8640 size=17280 fmt=0 type=1 qnt_type=0 fl=80 zp=-2042513072 scale=0.000000
type 是float16, 请问我怎么转换成float16, 现在输入是float matrix[5*3*24*24]; 本来想float32 输入。

作者: jefferyzhang    时间: 2019-6-6 16:14
zhuhairong 发表于 2019-6-6 09:22
我的模型没有量化,因为归一化要自己做所以输入就是float的;input打印:index=0 name= n_dims=4 dims=[1  ...

参看1.0.0 toolkit文档。
不量化默认就是float16。量化的话也可以混合量化,部分层不量化
作者: zhuhairong    时间: 2019-6-12 19:26
jefferyzhang 发表于 2019-6-6 16:14
参看1.0.0 toolkit文档。
不量化默认就是float16。量化的话也可以混合量化,部分层不量化 ...

最后结论:1. 归一化0 0 0 1  2. 量化False  3. 外部归一化  可以得到正确结果。多谢!




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