-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于scheduler/dispatcher.py 125行处的bug #51
Comments
问题已经知悉,这似乎是上一次修改调度器逻辑留下的后遗症之一。 对于efficientnet而言,我记得我们执行器算出来的结果好像跟onnx runtime的不太一样,虽然我还不知道是什么问题。 |
不对啊兄弟,我跑了一下这个模型,它跑的开开心心没啥毛病啊... from ppq import * d = [torch.rand(1, 224, 224, 3) for _ in range(32)] |
额,这样的执行过程有涉及到ConvBN fuse吗(我不太了解PPQ细节haha),我的问题我发现是做了ConvBN fuse 会导致的 |
好像做了吧...不融合BN应该报别的错误了... |
害嗨,我改了一下代码,判断一下dispatching_table有没有source_op然后分情况处理就好了。 我又遇到另外一个raise Excption:quantization/observer/range.py 254行报的,说torch.quantile can not handle such many values,这是啥意思勒 |
对了,能叨扰你罗列一下目前能支持(能跑完量化)的模型吗😣 |
|
torch.quantile 函数只能处理16777216个数据的tensor,这个好像是pytorch自己写的有问题,这个函数会用来做percentile的observer,你using cuda kernel然后我们自己写了个quantile函数没有这个限制。然后正如a1trl9所说的,你也可以换一个observer,通过下列代码: QUANT_SETTING = QuantizationSettingFactory.pplcuda_setting() |
👌👌 |
我们是按算子支持的哦,只要你的模型是由下列这些算子组成的,没有超出范围的算子就可以 不管你中间怎么连接的这些算子,ppq都可以正常量化(应该吧),对于复杂的模型ppq也会自动切图调度。 然后onnx model zoo里面有些模型有loop算子或者 if算子,这种我们不支持,后端也大概率支持不了 你需要避免网络中出现那些看起来就很不可思议的算子,比如swish, elu, sigmoid, tanh, if, loop, lstm, gru, nms, resize,后端的支持能力比我们弱得多,你的网络要真正能部署在硬件上才有价值哦。 |
好的,感谢👍👍👍 |
项目很不错!但是我在跑ONNX官网model zoo 的 efficientnet-lite4-11.onnx 模型有报错。报错在scheduler/dispatcher.py 125行。分析了一下原因是这样:
综合1、2,也就是说,此时dispatching_table 是没有ConvBN这个operation的信息的,就会导致报错。顺序上的问题,看作者您怎么解决为好
The text was updated successfully, but these errors were encountered: