paddle 动态图命名重复问题

引言

具体场景是这样的,我用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脚本循环跑;

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

有的,很简单!

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

你可能感兴趣的:(paddle)