目前,megengine是不是不支持多输出的网络呢?

本地修改xornet网络为多输出,但是报错。

您好,MegEngine 的 Module 支持多输出,您可以参考这个例子:

您也可以把提示报错的代码帖在这里:)

感谢您对 MegEngine 项目的关注!

1赞

我打算把onnx模型转到megengine模型,发现megengine 的conv2d的padding 参数size只能是2,但是我的模型的conv算子的padding size为4,这个有什么解决办法吗?企业微信截图_1585281139743

上面的截图可能只是显示对称padding(可以使用其中两个数就可以解决),如果是非对称的padding的话[0, 1, 1, 1],这样怎么解决呢?

您好,megengine的conv2D是不是不支持非对称的padding方式呢? 比如padding 参数为[0,1,1,1]

您好,MegEngine 暂时不支持非对称的 padding,我们会对非对称 padding 的需求进行评估并加入后续的迭代计划,感谢您对 MegEngine 项目的关注:)

谢谢您的回复, :slightly_smiling_face:,期望后续megengine越来越完善。

@zjd1988方便问一下非对称 padding 的使用场景么?

我们的模型之前是tensorflow的训练得到的,现在尝试使用megengine来部署网络,可以摆脱tensorflow的库编译的冗长问题,同时学习下megengine的推理流程。我们网络的conv2D padding都是“SAME”模式,跟megengine提供的方式不一致,所以将tensorflow模型转成onnx之后,在使用脚本构造megengine网络时,我发现部分conv2D padding是非对称的,所以才有了这个问题。 :joy:

我发现cudnn的conv默认是不支持非对称的padding,想着先执行padding再Conv,但是今天看了下文档发现megengine貌似也不支持Pad这个算子

了解了,果然是 TF 的 SAME 模式导致的。

Pad 算子的问题我们记录一下,下个版本应该就有了,目前我们内部都是通过造一个 Tensor 然后 SetSubTensor 的方式来做的。

现在你可以参考下面这段代码来当 pad 哈。

https://github.com/MegEngine/Models/blob/7085f9dc225e614e1e576f4af9bcb1af931bdf30/official/vision/detection/layers/basic/functional.py#L52

嗯嗯,好的,谢谢啦! :grinning: