运行CartPole DQN示例报错:无效根作用域名称
解决DQN模型predict时的ValueError:无效根作用域名称
问题原因
错误提示'CartPole DQN model/' is not a valid root scope name,是因为你的模型(或其内部层)的名称包含空格和末尾斜杠,不符合TensorFlow对作用域名称的规则:必须匹配正则^[A-Za-z0-9.][A-Za-z0-9_./>-]*$,即开头只能是字母、数字或点,后续可包含字母、数字、下划线、点、斜杠、连字符或大于号,但不能有空格,也不能以斜杠结尾。
解决方案
- 找到
OurModel类的定义,检查模型或内部层的name参数:- 如果你在定义模型时指定了名称,比如
super().__init__(name="CartPole DQN model/"),把名称改成合法格式,例如"CartPole_DQN_model"或"CartPoleDQNModel"。 - 如果是模型内部的层使用了违规名称(比如
Dense(64, name="CartPole layer/")),同样修改层的名称,去掉空格和末尾斜杠。
- 如果你在定义模型时指定了名称,比如
- 修改后重新初始化模型,再执行
self.model.predict(state)即可解决该错误。
内容的提问来源于stack exchange,提问作者Arpit Sisodia
相关产品推荐
相关产品推荐

