Toybrick

vgg16-bn.onnx不开量化预测成功,开量化build失败!

shanshuiziran

新手上路

积分
44
发表于 2019-6-27 23:52:33    查看: 7583|回复: 3 | [复制链接]    打印 | 显示全部楼层
vgg16-bn.onnx不开量化转换成功,预测也成功;开量化build失败!同样的转换代码,转另一个onnx 就可以成功,不知什么原因?
转换代码:
#_*_coding: utf-8 _*_
import numpy as np
import cv2
from rknn.api import RKNN
from PIL import Image


if __name__ == '__main__':
    # Create RKNN object
    rknn = RKNN(verbose=True,verbose_file='./crnntcn.log')

    # pre-process config
    print('--> config model')
    rknn.config( channel_mean_value='128 128 128 128', reorder_channel='0 1 2')#,batch_size=1,epochs=500#batch_size=1, ,quantized_dtype='dynamic_fixed_point-16',quantized_dtype='dynamic_fixed_point-8'
    print('done')

    # Load tensorflow model
    print('--> Loading model')
    ret = rknn.load_onnx(model = './vgg16-bn.onnx')
    if ret != 0:
        print('Load crnn_cnn failed! Ret = {}'.format(ret))
        exit(ret)
    print('done')

    # Build model
    print('--> Building model')
    ret = rknn.build(do_quantization=True, dataset='/home/sysman/rknn/mv2/vggpic/dataset.txt')
    if ret != 0:
        print('Build crnn_cnn failed!')
        exit(ret)
    print('done')

    # Export rknn model
    print('--> Export RKNN model')
    ret = rknn.export_rknn('./vgg.rknn')
    if ret != 0:
        print('Export crnn_cnn.rknn failed!')
        exit(ret)
    print('doneOKOK')


    rknn.release()


出错部分:
。。。。。
D Quantize tensor @Conv_17_37:bias.
D Quantize tensor @Conv_14_40:bias.
D Quantize tensor @Conv_10_44:bias.
D Quantize tensor @Conv_7_47:bias.
D Quantize tensor @Conv_3_51:bias.
D Quantize tensor @Conv_0_54:bias.
I Clean.
D Optimizing network with qnt_single_transmit_quantize, align_quantize, broadcast_quantize, qnt_adjust_coef
D Quantize tensor(@MaxPool_43_11ut0) with tensor(@Relu_42_12ut0)
D Quantize tensor(@attach_Gemm_53/out0_0ut0) with tensor(@Gemm_53_1ut0)
[TRAINER]Quantization complete.
E Catch exception when building RKNN model!
T Traceback (most recent call last):
T   File "rknn/api/rknn_base.py", line 498, in rknn.api.rknn_base.RKNNBase.build
T   File "rknn/api/rknn_base.py", line 1071, in rknn.api.rknn_base.RKNNBase._quantize
T   File "rknn/base/RKNNlib/app/tensorzone/quantization.py", line 151, in rknn.base.RKNNlib.app.tensorzone.quantization.Quantization.run
T   File "rknn/base/RKNNlib/RKNNnet.py", line 341, in rknn.base.RKNNlib.RKNNnet.RKNNNet.save_data
T   File "rknn/base/RKNNlib/RKNNnet.py", line 355, in rknn.base.RKNNlib.RKNNnet.RKNNNet._save_old_data
T   File "rknn/base/RKNNlib/RKNNnet.py", line 363, in rknn.base.RKNNlib.RKNNnet.RKNNNet._save_old_data
T   File "/usr/local/lib/python3.5/dist-packages/numpy/lib/npyio.py", line 511, in save
T     pickle_kwargs=pickle_kwargs)
T   File "/usr/local/lib/python3.5/dist-packages/numpy/lib/format.py", line 586, in write_array
T     pickle.dump(array, fp, protocol=2, **pickle_kwargs)
T MemoryError


请高手指点,多谢了
回复

使用道具 举报

shanshuiziran

新手上路

积分
44
 楼主| 发表于 2019-7-1 18:08:20 | 显示全部楼层
希望官方回复!!!
回复

使用道具 举报

jefferyzhang

版主

积分
12851
发表于 2019-7-4 09:19:05 | 显示全部楼层
查看最新的rknn toolkit的文档,新版rknn(1.0版本以及未来1.0以上版本)都支持混合量化,可以逐层量化预测结果,查看哪一层量化会出问题,然后单独关闭那一层的量化。实现高度自由配置。
回复

使用道具 举报

zhangzj

超级版主

积分
1109
发表于 2019-7-15 09:11:49 | 显示全部楼层
shanshuiziran 发表于 2019-7-1 18:08
希望官方回复!!!

T MemoryError

是不是这个网络模型比较大,爆内存了?量化会比较消耗内存。
回复

使用道具 举报

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

本版积分规则

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


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