Toybrick

标题: rknn-toolkit 导出模型的疑问 [打印本页]

作者: zuoshaobo    时间: 2019-4-11 10:49
标题: rknn-toolkit 导出模型的疑问
模型导出的时候有些问题:
1.我是用的python rknn 导出的,导出的模型大小 如果do_quantization=False  是不是导出的模型就是fp32的?rknn的模型大写是不是和原始的模型大小很接近?
我用的tensorflow pb导出的模型只有原来的一半,这是什么原因?
2.我试了简单的两层模型,pc上inference的结果怎么和板子上推理的不一样?

作者: 程子    时间: 2019-4-11 13:56
1. 我这边也有一样的结果,猜测此时会量化到float16。
2. 不一样的差别有多大?是否是精度降低引起的?
作者: zuoshaobo    时间: 2019-4-11 16:09
转换后的差别很大,几乎没有相同的
奇怪的是,例程里面mobilenet v1 我将do_quantization=改为false,转换前tflite大小是16.9M,转换后变成了58M,默认是fp32的话 体积怎么变大了?我自己的模型反而变小了,不解。

作者: jefferyzhang    时间: 2019-5-21 12:20
zuoshaobo 发表于 2019-4-11 16:09
转换后的差别很大,几乎没有相同的
奇怪的是,例程里面mobilenet v1 我将do_quantization=改为false,转换 ...

模型大小不用太过于纠结,开启precompile后会变得非常小。毕竟是芯片OP,层和各个框架软件定义的并不完全相同,要通过转换才能适配硬件运算。例如卷积+Relu或者max pooling会融合成一层,提高计算速度减少开销。但是框架软件为了层次清晰很多会拆分的非常细。

关于运算结果不同需要具体debug下,最好分一层一层来比对输出结果,看下哪一层转换后结果和预期不一致。





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