paddle 动态图命名重复问题

在使用Paddle动态图时,遇到二次运行报参数名称已存在的问题。现有解决方案包括重启内核和通过bash脚本循环运行,但这些方法不便。文中提供了一个简单方法,在每次模型迭代时加入特定代码,有效避免层名称重复的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

具体场景是这样的,我用ai studio提供的notebook跑动态图代码,第一遍正常,第二遍的时候就报参数名称已存在,虽然我也知道这是notebook存储之前的参数变量引起的,只需要重启再运行就可以了。但是重启代价太高了,尤其是前面已经写了很多代码,而我只是想测试这一个cell块中的代码的时候。

正文

我看很多帖子遇到相似的问题,但是都没有得到很好的解决。

报错的格式类似于:

ValueError: parameter name [weight] have be been used. In dygraph mode, the name of parameter can't be same.Please check the parameter attr value passed to self.create_parameter or constructor of dygraph Layers

还有在k这交叉验证的时候出现的问题:
有个问题,如果我要实现k折交叉验证,也就是说对于一个选定的backbone,针对每折数据都要生成一个版本的模型,这样就会报错。

总而言之,目前已有的解决方法有:

  • 重启内核;
  • 通过bash脚本循环跑;

这两种方式都太麻烦了,有没有简单的呢?

有的,很简单!

以下代码:只需要在每次循环遍历代码(模型)的时候,将这两行代码放到开头/结尾都行,就完美的解决了层名称重复的问题。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

或许,这就是梦想吧!

如果对你有用,欢迎打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值