stable_baselines模块错误 -> 'gym.logger' 没有属性'MIN_LEVEL'



我正在尝试使用stable_baselines,但我尝试使用的任何模型都会给我相同的错误:

模块"gym.logger"没有属性"MIN_LEVEL">

我附上了他们网站上的一个例子,给了我同样的错误。我试着上网查找,但没有成功。此外,我目前正在使用Conda创建具有以下设置的环境。

Tensorflow:1.15.0Python:3.7.11

代码如下。

import gym
from stable_baselines.common.policies import MlpPolicy
from stable_baselines.common import make_vec_env
from stable_baselines import PPO2
# multiprocess environment
env = make_vec_env('CartPole-v1', n_envs=4)
model = PPO2(MlpPolicy, env, verbose=1)
model.learn(total_timesteps=25000)
model.save("ppo2_cartpole")
del model # remove to demonstrate saving and loading
model = PPO2.load("ppo2_cartpole")
# Enjoy trained agent
obs = env.reset()
while True:
action, _states = model.predict(obs)
obs, rewards, dones, info = env.step(action)
env.render()

完全错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/var/folders/2l/c0wfhk2x0qz3v_6x0ylvvdr00000gn/T/ipykernel_4323/1825670659.py in <module>
8 env = make_vec_env('CartPole-v1', n_envs=4)
9 
---> 10 model = PPO2(MlpPolicy, env, verbose=1)
11 model.learn(total_timesteps=25000)
12 model.save("ppo2_cartpole")
~/miniconda3/envs/tf15/lib/python3.7/site-packages/stable_baselines/ppo2/ppo2.py in __init__(self, policy, env, gamma, n_steps, ent_coef, learning_rate, vf_coef, max_grad_norm, lam, nminibatches, noptepochs, cliprange, cliprange_vf, verbose, tensorboard_log, _init_setup_model, policy_kwargs, full_tensorboard_log, seed, n_cpu_tf_sess)
95 
96         if _init_setup_model:
---> 97             self.setup_model()
98 
99     def _make_runner(self):
~/miniconda3/envs/tf15/lib/python3.7/site-packages/stable_baselines/ppo2/ppo2.py in setup_model(self)
108 
109     def setup_model(self):
--> 110         with SetVerbosity(self.verbose):
111 
112             assert issubclass(self.policy, ActorCriticPolicy), "Error: the input policy for the PPO2 model must be " 
~/miniconda3/envs/tf15/lib/python3.7/site-packages/stable_baselines/common/base_class.py in __enter__(self)
1127         self.tf_level = os.environ.get('TF_CPP_MIN_LOG_LEVEL', '0')
1128         self.log_level = logger.get_level()
-> 1129         self.gym_level = gym.logger.MIN_LEVEL
1130 
1131         if self.verbose <= 1:
AttributeError: module 'gym.logger' has no attribute 'MIN_LEVEL'

我通过转到:解决了这个问题

Anaconda3Libsite-packagesstable_baselinescommonbase_class.py

更改:

self.gym_level = gym.logger.MIN_LEVEL

进入:

self.gym_level = gym.logger

stable_baselines似乎不再完全适用于最新的健身房,请尝试从2020年左右安装一个版本的健身房:

pip install "gym==0.19.0"

也就是说,您应该尝试迁移到当前的stable_baselines3

您必须使用将您的健身模块更新到最新版本

pip install gym[all] -U

在你的命令行

我遇到了同样的问题。我手动更改了所有";min_ level";s在健身房里;最低水平";或者你也可以改变";最低水平";在stable_baselines.common.base_class.py中;最小电平";。

我想这是新版openai健身房和稳定基线之间的不一致。(使用稳定基线3不会遇到这个问题。(

最新更新