区分gym中的gym.make函数、与gym.vector.make函数
gym.make()gym.vector.make()gym.make()
输入:环境ID,输出:环境实例env
通过环境ID找到单个环境
gym.vector.make()
从一个环境的大量副本中创建一个矢量化环境。相当于创建一个batch之类的,有两种处理方式:同步和异步。
输入:
id:环境的ID,必须传入一个有效的、在gym中注册过的ID;
num_envs:矢量化环境中环境的数量;
asynchronous:布尔型的值,如果为True则用’AsyncVectorEnv’包装环境,否则用’SyncVectorEnv’包装环境;
gym.vector.make()实际上也是调用gym.make()函数,不过gym.vector.make()是根据环境ID创建一个矢量化的环境。wrappers如果是个可调用的,则对环境直接包装,如果是个列表,则用wrappers里面的每个可调用的wrapper对环境进行包装。
def vector_make(id, num_envs=1, asynchronous=True, wrappers=None, **kwargs):from gym.envs import make as make_def _make_env():env = make_(id, **kwargs)if wrappers is not None:if callable(wrappers):env = wrappers(env)elif isinstance(wrappers, Iterable) and all([callable(w) for w in wrappers]):for wrapper in wrappers:env = wrapper(env)else:raise NotImplementedErrorreturn envenv_fns = [_make_env for _ in range(num_envs)]return AsyncVectorEnv(env_fns) if asynchronous else SyncVectorEnv(env_fns)
如果觉得《区分gym中的gym.make()函数与gym.vector.make()函数》对你有帮助,请点赞、收藏,并留下你的观点哦!