PaddleGAN icon indicating copy to clipboard operation
PaddleGAN copied to clipboard

fom转onnx遇到问题

Open zhoumenghan opened this issue 3 years ago • 5 comments

您好,在将fom动转静保存为pdmodel,pdiparams之后,我利用paddle2onnx,用于将模型转换成onnx格式,但在转换时候遇到一些op无法支持的问题: There's 9 ops are not supported yet =========== grid_sampler =========== =========== logical_not =========== =========== select_input =========== =========== sync_batch_norm =========== =========== logical_or =========== =========== conditional_block =========== =========== reduce_any =========== =========== inverse =========== =========== not_equal =========== 在paddle2onnx的github上提了issue,那边的工程师给出的答复为: 1. Sync_batch_norm 这个属于训练时才会有的Operator,导出来的inference模型不应该有这个OP 2. Select_input/conditional_block这些属于控制流相关的OP,是否一定有必要存在呢,因为目前Paddle2ONNX不支持控制流转换 对于如上2个问题,如果方便的话,请给PaddleGan的Github提个issue反馈此问题~ image

想问一下针对这些op无法支持的问题,我应该如何解决?谢谢您~

zhoumenghan avatar Jul 06 '21 01:07 zhoumenghan

定位到了控制流相关op的问题,在occlusion_aware.py中: image 注释以后 image 重新动转静,得到pdmodel pdiparams以后,再paddle2onnx: image 这三个op有办法可以解决吗?

zhoumenghan avatar Jul 06 '21 03:07 zhoumenghan

第一个op,在这里https://github.com/PaddlePaddle/PaddleGAN/blob/develop/ppgan/modules/first_order.py#L25。统一改成使用nn.BatchNorm就好。 剩下的两个op需要paddle2onnx的同学支持下

LielinJiang avatar Jul 06 '21 06:07 LielinJiang

第一个op,在这里https://github.com/PaddlePaddle/PaddleGAN/blob/develop/ppgan/modules/first_order.py#L25。统一改成使用nn.BatchNorm就好。 剩下的两个op需要paddle2onnx的同学支持下

我也注意到了first_order.py中的这里: image

但我有一个顾虑从,sync_batch_norm改成batchnorm之后,训练好的模型不需要变动吗,还是说需要重新训练模型呢?

zhoumenghan avatar Jul 06 '21 07:07 zhoumenghan

第一个op,在这里https://github.com/PaddlePaddle/PaddleGAN/blob/develop/ppgan/modules/first_order.py#L25。统一改成使用nn.BatchNorm就好。 剩下的两个op需要paddle2onnx的同学支持下

我也注意到了first_order.py中的这里: image

但我有一个顾虑从,sync_batch_norm改成batchnorm之后,训练好的模型不需要变动吗,还是说需要重新训练模型呢?

不需要变动的,可以直接加载已经训练好的参数。

LielinJiang avatar Jul 06 '21 07:07 LielinJiang

看了一下fom的原始pytorch版本代码,训练用的是sync_batch_norm,测试用的是batch_norm, 确实是不用变动,fom的paddle版本这部分实现的工程师可能需要稍微加个类似的判断~ image

zhoumenghan avatar Jul 06 '21 07:07 zhoumenghan

问题过于久远,如果有图像和视频生成的需求,可以使用新的跨模态工具: https://github.com/PaddlePaddle/PaddleMIX/tree/develop

JunnYu avatar Feb 29 '24 03:02 JunnYu