weixin_53670585 2024-05-01 22:21 采纳率: 0%
浏览 50

tensorflow报错,重复注册

ValueError: PyTree type <class 'tensorflow.python.trackable.data_structures.ListWrapper'> is already registered in namespace 'keras'.
这段报错如何修改

  • 写回答

6条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-05-01 22:21
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这个报错出现的原因是在导入 keras 模块时,模块内已经将 PyTree 类型的 ListWrapper 注册过了,而后在你的代码中又试图将其注册,导致报错。 解决方式是要么升级 keras 版本、要么在你的代码中避免注册已经在 keras 中注册过的类。 例子一:升级 keras 版本 如果你的 keras 版本比较旧,可能是因为 keras 旧版本中也有 PyTree 类型 的 ListWrapper 被注册了,而新版本中修改过了。所以可以尝试升级 keras 版本,看看是否可以解决这个问题。 例子二:避免已经注册的类 如果需要使用 ListWrapper 类型,可以使用另一个名称,来避免和 keras 中已经注册的类名称冲突。例如:
    # 引入 tensorflow 模块
    import tensorflow as tf
    # 定义自己的 ListWrapper 类
    class MyListWrapper(tf.python.trackable.data_structures.ListWrapper):
        pass
    

    这里定义了一个新的类 MyListWrapper,它继承自 tf.python.trackable.data_structures.ListWrapper,但名称不同,不会和 keras 中已经注册的 ListWrapper 类名冲突。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月1日