PaddlePaddle / Paddle

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
http://www.paddlepaddle.org/
Apache License 2.0
22.17k stars 5.57k forks source link

[Dy2St] Use weakref for layer instance conversion to avoid circular reference #68850

Open SigureMo opened 1 day ago

SigureMo commented 1 day ago

PR Category

Execute Infrastructure

PR Types

Bug fixes

Description

要解决的问题同 #68815,但方案不同,本 PR 通过解除 static function 对 class instance 的强引用来解除循环引用

68815 实现有点恶心,特别是与动态图的边界,以及内部的 API 转换(convert_call)并不是用 to_static 而是直接 convert_to_static,如果不是 StaticFunction 就没办法用之前的 bind 方案了,重构起来成本就高了,因此暂时恢复旧的解除引用方案

PCard-66972

paddle-bot[bot] commented 1 day ago

你的PR提交成功,感谢你对开源项目的贡献! 请关注后续CI自动化测试结果,详情请参考Paddle-CI手册。 Your PR has been submitted. Thanks for your contribution! Please wait for the result of CI firstly. See Paddle CI Manual for details.