Toybrick

量化build之后报reshape的错误

pzniub

新手上路

积分
25
楼主
发表于 2019-11-7 09:55:23    查看: 6586|回复: 1 | [复制链接]    打印 | 只看该作者
本帖最后由 pzniub 于 2019-11-7 09:57 编辑

板子:rk1808
版本号:
tookkit 1.2.1
api 1.2.0
drv 0.99

问题描述:
我使用了默认量化,在dataset_coco_val.txt中一共有5000张图片,对应config中设置batch_size = 1,epochs = 5000
但是在build的时候,报了一个这样的错误(见下图),按照我的理解:应该是先加载这些图片,然后resize到模型的输入大小,放到模型推理一次,再得到量化参数吧?循环往复到所有dataset中的图片,可是为什么会报reshape的错误呢?
求论坛大佬答疑!谢谢!转换的代码已经放在后面了

  1. import numpy as np
  2. import re
  3. import math
  4. import random
  5. import cv2
  6. import time
  7. import os
  8. os.environ["CUDA_VISIBLE_DEVICES"] = ""
  9. from rknn.api import RKNN


  10. INPUT_SIZE_X = 512
  11. INPUT_SIZE_Y = 512

  12. SCALE = 2
  13. CHANLE = 14



  14. if __name__ == '__main__':

  15.     # Create RKNN object

  16.     rknn = RKNN()
  17.     rknn.list_devices()
  18.     #rknn.get_sdk_version()

  19. #    # Config for Model Input PreProcess
  20.     #rknn.config(channel_mean_value='123.68 116.78 103.94 58.82', reorder_channel='2 1 0')
  21.     rknn.config(batch_size = 1,channel_mean_value='123.68 116.78 103.94 58.82', epochs = 5000,reorder_channel='2 1 0') #bgr to rgb

  22.     # Load TensorFlow Model
  23.     print('--> Loading model')#lightweight_openpose_5stage_462007_noelu  lightweight_openpose_5stage_820019
  24.     import pdb
  25.     #pdb.set_trace()
  26.     ret = rknn.load_onnx(model='./models/xxx.onnx')
  27.     print('load model {}'.format(ret))
  28.     # Build Model
  29.     print('--> Building model')
  30.     start = time.time()
  31.     ret = rknn.build(do_quantization=True, dataset='./dataset_coco_val.txt', pre_compile=False)
  32.     print('build time {}'.format(time.time() - start))
  33.     print('build model {}'.format(ret))
  34.     # Export RKNN Model
  35.     print('--> Export model')
  36.     ret = rknn.export_rknn('../rknn_models/xxx.rknn')
  37.     if ret == -1:
  38.       print('export failed')
  39.     # Load RKNN Model
  40.     print('--> loading model')
  41.     ret = rknn.load_rknn('../rknn_models/xxx.rknn')

  42.     # Set inputs
  43.     input_data = np.expand_dims(img, axis=0)#.astype(np.float32)


  44.     # init runtime environment
  45.     print('--> Init runtime environment')
  46.     ret = rknn.init_runtime(async_mode=False, target='rk1808',device_id='xxx')
  47.     if ret != 0:
  48.         print('Init runtime environment failed')
  49.         exit(ret)
  50.     sdk_verson = rknn.get_sdk_version()
  51.     print(sdk_verson)
  52.     # Inference
  53.     print('--> Running model')
  54.     import pdb
  55.     #pdb.set_trace()
  56.     outputs = rknn.inference(inputs=[input_data], data_format='nchw', data_type='uint8',inputs_pass_through=[0])


  57.     rknn.eval_perf(inputs=[img], is_print=True)

  58.     # Release RKNN Context
  59.     rknn.release()
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

jefferyzhang

版主

积分
12952
沙发
发表于 2019-11-7 14:50:21 | 只看该作者
你这个是不是模型是三通道的输入,但是你给的量化图却是单通道的 ?
回复

使用道具 举报

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

本版积分规则

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


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