Toybrick

rknn.load_tensorflow() 时报错 segmentation fault

程子

中级会员

积分
386
发表于 2019-2-19 17:03:50    查看: 26308|回复: 16 | [复制链接]    打印 | 显示全部楼层
代码
  1. rknn = RKNN(verbose=True)
  2. ret = rknn.init_runtime(target='rk3399pro')
  3. if ret != 0:
  4.     print('Init runtime environment failed')
  5.     exit(ret)
  6. print('done')

  7. rknn.config(channel_mean_value='0 0 0 255', reorder_channel='0 1 2')
  8. print('--> Loading model')
  9. rknn.load_tensorflow(tf_pb='XXXXXXXX.pb',
  10.                      inputs=['input_image'],
  11.                      outputs=['XXXXXX1', 'XXXXXX2', 'XXXXXX3', 'XXXXXX4', 'XXXXXX5', 'XXXXXX6', ],
  12.                      input_size_list=[[512, 768, 3]])
  13. print('done')

复制代码



输出

  1. --> Init runtime environment
  2. done
  3. --> Loading model
  4. [1]    28312 segmentation fault (core dumped)  ./convert.py

复制代码



即使开了verbose,也没有得到任何有用的信息。
我把这个贴出来好像也没啥用,有啥方法可以更verbose一点吗?
或者说遇到 segmentation fault 应该去检查哪里呢?
回复

使用道具 举报

troy

版主

积分
2376
发表于 2019-2-20 11:04:23 | 显示全部楼层
可以使用最新的0.9.8版本试一下
回复

使用道具 举报

程子

中级会员

积分
386
 楼主| 发表于 2019-2-20 11:44:13 | 显示全部楼层
就是0.9.8。
回复

使用道具 举报

zht

注册会员

积分
74
发表于 2019-2-20 22:30:06 | 显示全部楼层
1. init_runtime调用的位置不对
2. 你这边版本的toolkit是从其他版本升级上来的吗?如果是,使用全新的环境试试。
回复

使用道具 举报

程子

中级会员

积分
386
 楼主| 发表于 2019-2-20 23:22:56 | 显示全部楼层
1. “init_runtime调用的位置不对”具体指的是什么?我这边代码基本抄的 http://t.rock-chips.com/wiki.php?mod=view&id=36
2. 之前是RKNN-Toolkit 0.9.7升到0.9.8的,刚刚用干净环境安装RKNN-Toolkit 0.9.8,问题依旧。
回复

使用道具 举报

程子

中级会员

积分
386
 楼主| 发表于 2019-2-21 10:00:41 | 显示全部楼层
有什么方法能够多打印一点debug信息出来吗?
回复

使用道具 举报

yhc

注册会员

积分
177
发表于 2019-2-21 10:42:52 | 显示全部楼层
init_runtime应该在build或load_rknn完成之后调用,参考
  1. if __name__ == '__main__':

  2.     # Create RKNN object
  3.     rknn = RKNN()

  4.     # Config for Model Input PreProcess
  5.     rknn.config(channel_mean_value='128 128 128 128', reorder_channel='0 1 2', batch_size=5)

  6.     # Load TensorFlow Model
  7.     print('--> Loading model')
  8.     rknn.load_tensorflow(tf_pb='./ssd_mobilenet_v1_coco_2017_11_17.pb',
  9.                          inputs=['FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/batchnorm/mul_1'],
  10.                          outputs=['concat', 'concat_1'],
  11.                          input_size_list=[[INPUT_SIZE, INPUT_SIZE, 3]])
  12.     print('done')

  13.     # Build Model
  14.     print('--> Building model')
  15.     rknn.build(do_quantization=True, dataset='./dataset.txt')
  16.     print('done')

  17.     # Export RKNN Model
  18.     rknn.export_rknn('./ssd_mobilenet_v1_coco.rknn')

  19.     # Direct Load RKNN Model
  20.     # rknn.load_rknn('./ssd_mobilenet_v1_coco.rknn')

  21.     # Set inputs
  22.     orig_img = cv2.imread('./road.bmp')
  23.     img = cv2.cvtColor(orig_img, cv2.COLOR_BGR2RGB)
  24.     img = cv2.resize(img, (INPUT_SIZE, INPUT_SIZE), interpolation=cv2.INTER_CUBIC)

  25.     # init runtime environment
  26.     print('--> Init runtime environment')
  27.     ret = rknn.init_runtime()
  28.     if ret != 0:
  29.         print('Init runtime environment failed')
  30.         exit(ret)
  31.     print('done')

  32.     # Inference
  33.     print('--> Running model')
  34.     outputs = rknn.inference(inputs=[img])
  35.     print('done')
  36.     print('inference result: ', outputs)
复制代码
回复

使用道具 举报

程子

中级会员

积分
386
 楼主| 发表于 2019-2-21 10:55:28 | 显示全部楼层
后置了rknn.init_runtime(),问题依旧。
回复

使用道具 举报

yhc

注册会员

积分
177
发表于 2019-2-21 11:07:43 | 显示全部楼层
你是在pc上运行还是在3399pro上呢,example里面的例子可以正常运行吗
回复

使用道具 举报

程子

中级会员

积分
386
 楼主| 发表于 2019-2-21 11:10:32 | 显示全部楼层
在RK3399Pro上面运行。
三个example可以正常运行。
自己做了个简化版的模型可以正常运行。
完整版模型在rknn.load_tensorflow()的时候segmentation fault。
回复

使用道具 举报

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

本版积分规则

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


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