Toybrick

asymmetric_quantized-u8量化问题

LSC

注册会员

积分
142
楼主
发表于 2019-12-28 10:36:44    查看: 23076|回复: 16 | [复制链接]    打印 | 只看该作者
各位大神好,我使用asymmetric_quantized-u8量化,有下面的警告,请问这是什么原因?
(ReLU不是没有参数吗?)
  1. --> Building model
  2. W Adjust min from [-5.106467] to [0.] for relu relu8_39
  3. W Adjust min from [-5.106467] to [0.] for relu relu13_67
  4. W Adjust min from [-5.106467] to [0.] for relu relu15_76
  5. W Adjust min from [-5.106467] to [0.] for relu relu17_85
  6. W Adjust min from [-4.101224] to [0.] for relu relu18_90
  7. W Adjust min from [-2.5565655] to [0.] for relu relu43_218
  8. W Adjust min from [-4.101224] to [0.] for relu relu23_118
  9. W Adjust min from [-4.101224] to [0.] for relu relu25_127
  10. W Adjust min from [-4.101224] to [0.] for relu relu27_136
  11. W Adjust min from [-3.4539304] to [0.] for relu relu28_141
  12. W Adjust min from [-24.208406] to [0.] for relu relu38_193
  13. W Adjust min from [-1.8253068] to [0.] for relu relu44_223
  14. done
复制代码






回复

使用道具 举报

jefferyzhang

版主

积分
13121
沙发
发表于 2019-12-30 08:35:38 | 只看该作者
量化的精度损失警告而已。relu本来就不会有负数,所以负数范围全部归0,不影响你模型推理.
转出来模型可以正常工作么?
回复

使用道具 举报

LSC

注册会员

积分
142
板凳
 楼主| 发表于 2019-12-30 09:45:23 | 只看该作者
jefferyzhang 发表于 2019-12-30 08:35
量化的精度损失警告而已。relu本来就不会有负数,所以负数范围全部归0,不影响你模型推理.
转出来模型可以 ...

感谢版主回复,使用混合量化时,第一步生成的cfg文件没做修改直接,第二步的时候报的在这些警告。使用生成的rknn模型时,效果很差。
回复

使用道具 举报

LSC

注册会员

积分
142
地板
 楼主| 发表于 2019-12-30 09:50:24 | 只看该作者
jefferyzhang 发表于 2019-12-30 08:35
量化的精度损失警告而已。relu本来就不会有负数,所以负数范围全部归0,不影响你模型推理.
转出来模型可以 ...

另外,如果直接量化(即build时令do_quantization=True,而不是混合量化),使用5000张图做数据集,batch_size=1,epochs=-1,每次到迭代到200左右时都会报错,请问这是什么原因?
  1. ...
  2. D Process output_243 ...
  3. D RKNN output shape(output): (1 128 128 80)
  4. D Real output shape: (1, 128, 128, 80)
  5. I Build ctdet_coco_dlav0_1x_2 complete.
  6. I Running 5000 iterations
  7. D 0(0.02%), Queue size 0
  8. D 1(0.04%), Queue size 0
  9. D 2(0.05%), Queue size 0
  10. D 3(0.08%), Queue size 0
  11. ...
  12. D 195(3.92%), Queue size 0
  13. D 196(3.94%), Queue size 0
  14. D 197(3.96%), Queue size 0
  15. D 198(3.98%), Queue size 0
  16. D 199(4.00%), Queue size 0
  17. E Catch exception when building RKNN model!
  18. E Traceback (most recent call last):
  19. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1278, in _do_call
  20. E     return fn(*args)
  21. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1263, in _run_fn
  22. E     options, feed_dict, fetch_list, target_list, run_metadata)
  23. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1350, in _call_tf_sessionrun
  24. E     run_metadata)
  25. E tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue '_0_fifo_queue' is closed and has insufficient elements (requested 1, current size 0)
  26. E          [[Node: fifo_queue_Dequeue = QueueDequeueV2[component_types=[DT_FLOAT], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/device:CPU:0"](fifo_queue)]]
  27. E During handling of the above exception, another exception occurred:
  28. E Traceback (most recent call last):
  29. E   File "rknn/api/rknn_base.py", line 584, in rknn.api.rknn_base.RKNNBase.build
  30. E   File "rknn/api/rknn_base.py", line 1424, in rknn.api.rknn_base.RKNNBase._quantize2
  31. E   File "rknn/base/RKNNlib/app/medusa/quantization.py", line 95, in rknn.base.RKNNlib.app.medusa.quantization.Quantization.run
  32. E   File "rknn/base/RKNNlib/app/medusa/quantization.py", line 44, in rknn.base.RKNNlib.app.medusa.quantization.Quantization._run_quantization
  33. E   File "rknn/base/RKNNlib/app/medusa/workspace.py", line 129, in rknn.base.RKNNlib.app.medusa.workspace.Workspace.run
  34. E   File "rknn/base/RKNNlib/app/medusa/workspace.py", line 110, in rknn.base.RKNNlib.app.medusa.workspace.Workspace._run_iteration
  35. E   File "rknn/base/RKNNlib/RKNN_session.py", line 30, in rknn.base.RKNNlib.RKNN_session.RKNNSession.run
  36. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 877, in run
  37. E     run_metadata_ptr)
  38. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1100, in _run
  39. E     feed_dict_tensor, options, run_metadata)
  40. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1272, in _do_run
  41. E     run_metadata)
  42. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1291, in _do_call
  43. E     raise type(e)(node_def, op, message)
  44. E tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue '_0_fifo_queue' is closed and has insufficient elements (requested 1, current size 0)
  45. E          [[Node: fifo_queue_Dequeue = QueueDequeueV2[component_types=[DT_FLOAT], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/device:CPU:0"](fifo_queue)]]
  46. E Caused by op 'fifo_queue_Dequeue', defined at:
  47. E   File "caffe2rknn.py", line 22, in <module>
  48. E     rknn.build(do_quantization=True, dataset='dataset.txt')
  49. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/rknn/api/rknn.py", line 166, in build
  50. E     ret = self.rknn_base.build(do_quantization=do_quantization, dataset=dataset, pack_vdata=pre_compile, batch_size=rknn_batch_size)
  51. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/ops/data_flow_ops.py", line 433, in dequeue
  52. E     self._queue_ref, self._dtypes, name=name)
  53. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/ops/gen_data_flow_ops.py", line 3734, in queue_dequeue_v2
  54. E     timeout_ms=timeout_ms, name=name)
  55. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
  56. E     op_def=op_def)
  57. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 454, in new_func
  58. E     return func(*args, **kwargs)
  59. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3155, in create_op
  60. E     op_def=op_def)
  61. E   File "/home/lsc/anaconda3/envs/RKNN/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1717, in __init__
  62. E     self._traceback = tf_stack.extract_stack()
  63. E OutOfRangeError (see above for traceback): FIFOQueue '_0_fifo_queue' is closed and has insufficient elements (requested 1, current size 0)
  64. E          [[Node: fifo_queue_Dequeue = QueueDequeueV2[component_types=[DT_FLOAT], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/device:CPU:0"](fifo_queue)]]
复制代码




回复

使用道具 举报

jefferyzhang

版主

积分
13121
5#
发表于 2019-12-30 10:01:15 | 只看该作者
1. 请问下您使用的rknn toolkit版本号,早期版本有这个问题,但是后来已经修复了,至少1.2.1上应该不会有这个错。
2. 确认下您模型是不是3通道,但是使用的datasets里有单通道图片,也会造成这种错误。
回复

使用道具 举报

LSC

注册会员

积分
142
6#
 楼主| 发表于 2019-12-30 10:22:00 | 只看该作者
jefferyzhang 发表于 2019-12-30 10:01
1. 请问下您使用的rknn toolkit版本号,早期版本有这个问题,但是后来已经修复了,至少1.2.1上应该不会有这 ...

1. 版本号是1.2.1,
2. 图片是下载的coco_voc_2017,而且刚用脚本验证了一下,都是3通道的。
会不会和内存有关?但是每次不是只处理一张图片吗?
回复

使用道具 举报

jefferyzhang

版主

积分
13121
7#
发表于 2019-12-30 10:25:51 | 只看该作者
用1.3.0试下,https://eyun.baidu.com/enterpris ... =201910153024123244
密码:rknn

跟内存应该关系不大,你是在PC上执行量化么?
回复

使用道具 举报

LSC

注册会员

积分
142
8#
 楼主| 发表于 2019-12-30 10:37:05 | 只看该作者

是的PC,Linux,CPU上,epochs=100就不报这个错误,但是检测的时候一个框都检测不到。
好的,我去试试1.3.0。

还有个问题,就是混合量化第一步生成的cfg文件不修改直接进行第二步,是不是就和直接量化(不是混合量化,即转模型时do_quantization=True)效果一样?
回复

使用道具 举报

jefferyzhang

版主

积分
13121
9#
发表于 2019-12-30 11:23:53 | 只看该作者
LSC 发表于 2019-12-30 10:37
是的PC,Linux,CPU上,epochs=100就不报这个错误,但是检测的时候一个框都检测不到。
好的,我去试试1.3. ...

是的
回复

使用道具 举报

LSC

注册会员

积分
142
10#
 楼主| 发表于 2019-12-30 11:27:36 | 只看该作者

非常感谢,我先去1.3.0试下
回复

使用道具 举报

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

本版积分规则

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


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