微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用环境的python类继承“无法重新注册id”

如何解决使用环境的python类继承“无法重新注册id”

gym-pybullet-drones github 的启发,我想将一个健身房环境作为基础(用于物理和主要结构),并在该基础上定义不同的奖励和完成作为其他环境(通过 python 类继承)。>

文件类似于这些:

基础环境文件

import gym
class SimpleBaseEnv(gym.Env):
    def __init__(self):
        ...

    def step(self,action):
        ...

    def compute_done(self):
        raise NotImplementedError

    def compute_reward(self):
        raise NotImplementedError

    def compute_obervations(self):
        ...

    def reset(self):
        ...

奖励和完成的 env 文件

from <path/from/project/to/base_env> import SimpleBaseEnv
class FirstTaskEnv(SimpleBaseEnv):
    def __init__(self):
        super().__init__()

    def compute_reward(self):
        ...
        return reward_value

    def compute_done(self):
        ...
        return done

问题是如果我在FirstTaskEnv文件中导入需要的基础环境(继承类),报错

健身房错误:无法重新注册 ID

有什么办法可以像我想要的那样做吗?其他可行的解决方案是在同一个基本环境文件中定义新环境 (FirstTaskEnv),但如果可能的话,我希望在分离的文件和环境中进行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。