Toybrick

输入是24*24*15的模型转换问题

zhuhairong

注册会员

积分
148
楼主
发表于 2019-6-4 09:44:20    查看: 7118|回复: 6 | [复制链接]    打印 | 只看该作者
本帖最后由 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

版主

积分
12925
沙发
发表于 2019-6-5 17:50:39 | 只看该作者
rknn输入如果是24x24x15,请不要用rknn的归一化,channel_mean_value设成‘0 0 0 1’
自行归一化后再送入模型
回复

使用道具 举报

zhuhairong

注册会员

积分
148
板凳
 楼主| 发表于 2019-6-6 07:56:55 | 只看该作者
本帖最后由 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

版主

积分
12925
地板
发表于 2019-6-6 08:53:14 | 只看该作者
zhuhairong 发表于 2019-6-6 07:56
多谢,请问 reorder_channel  这个有影响吗?  15 channels, “2 1 0” ?还有是否需要量化?
...

量化的话送入的图片也必须是处理成24x24x15的,而不是24x24x3的。
2 1 0没有意义,建议不要设置他试试。
可以先不量化来测试结果
回复

使用道具 举报

zhuhairong

注册会员

积分
148
5#
 楼主| 发表于 2019-6-6 09:22:05 | 只看该作者
本帖最后由 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

版主

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

参看1.0.0 toolkit文档。
不量化默认就是float16。量化的话也可以混合量化,部分层不量化
回复

使用道具 举报

zhuhairong

注册会员

积分
148
7#
 楼主| 发表于 2019-6-12 19:26:49 | 只看该作者
jefferyzhang 发表于 2019-6-6 16:14
参看1.0.0 toolkit文档。
不量化默认就是float16。量化的话也可以混合量化,部分层不量化 ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表