D4RL的踩坑记录

news/2024/10/22 23:36:07/

D4RL 的env.get_normalized_score

在调用d4rl的库函数时用了env.get_normalized_score
这里遇到的问题是
env has no attribute get_normalized_score

后记

D4RL的用法指南
D4RL本质上是一个数据库,用于离线的强化学习
D4RL的env和gym的环境并不同
简单来说,gym提供的是在线的交互式env,而D4RL则是离线的env
最直观的来看名字就不同

#gym
env = gym.make('Hopper')
#D4RL
env = gym.make('hopper-medium-v0')

分析

首先的分析的问题是env写法的问题

到D4RL官网看一看
Normalizing Scores
You can use the env.get_normalized_score(returns) function to compute a normalized score for an episode, where returns is the undiscounted total sum of rewards accumulated during an episode.
我在网上找到了一个用法,似乎没有问题

分析一下是不是D4RL的安装问题

protobuf

按照官方的下载路线之后得到了以下的报错
在这里插入图片描述
可以看到问题是protobuf
尝试的方法1
pip uninstall protobuf
pip install protobuf==3.20.1
打开根目录下的/d4rl后发现,下载的文件可能有问题
计划重新下载安装
rm -rf files

d4rl 的下载方案

git clone https://github.com/rail-berkeley/d4rl.git
cd d4rl
pip install -e .

遇到的报错为

fatal: unable to access ‘https://github.com/aravindr93/mjrl/’: GnuTLS recv error (-110): The TLS connection was non-properly terminated.
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with ‘git status’
and retry with 'git restore --source=HEAD 😕
尝试的解决方案为
问题成功解决了
重新安装成功了

运行安装测试

import gym
import d4rl # Import required to register environments

# Create the environment
env = gym.make('maze2d-umaze-v1')# d4rl abides by the OpenAI gym interface
env.reset()
env.step(env.action_space.sample())# Each task is associated with a dataset
# dataset contains observations, actions, rewards, terminals, and infos
dataset = env.get_dataset()
print(dataset['observations']) # An N x dim_observation Numpy array of observations# Alternatively, use d4rl.qlearning_dataset which
# also adds next_observations.
测试的结果

运行到env = gym.make(‘maze2d-umaze-v1’)遇到的问题是

  logger.warn(
pybullet build time: May 20 2022 19:44:17env = gym.make('maze2d-umaze-v1')
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/opt/conda/lib/python3.8/site-packages/gym/envs/registration.py", line 592, in makeenv = env_creator(**_kwargs)File "/d4rl/d4rl/pointmaze/maze_model.py", line 175, in __init__mujoco_env.MujocoEnv.__init__(self, model_path=f.name, frame_skip=1)File "/opt/conda/lib/python3.8/site-packages/gym/envs/mujoco/mujoco_env.py", line 97, in __init__observation, _reward, done, _info = self.step(action)File "/d4rl/d4rl/pointmaze/maze_model.py", line 192, in stepself.clip_velocity()File "/d4rl/d4rl/pointmaze/maze_model.py", line 222, in clip_velocityqvel = np.clip(self.sim.data.qvel, -5.0, 5.0)
AttributeError: 'MazeEnv' object has no attribute 'sim'

import d4rl 的 warning


```python
>>> import d4rl
Warning: Flow failed to import. Set the environment variable D4RL_SUPPRESS_IMPORT_ERROR=1 to suppress this message.
No module named 'flow.envs'
/opt/conda/lib/python3.8/site-packages/glfw/__init__.py:906: GLFWError: (65544) b'X11: The DISPLAY environment variable is missing'warnings.warn(message, GLFWError)
/opt/conda/lib/python3.8/site-packages/flatbuffers/compat.py:19: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative usesimport imp
/opt/conda/lib/python3.8/site-packages/keras/utils/image_utils.py:36: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.'nearest': pil_image.NEAREST,
/opt/conda/lib/python3.8/site-packages/keras/utils/image_utils.py:37: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.'bilinear': pil_image.BILINEAR,
/opt/conda/lib/python3.8/site-packages/keras/utils/image_utils.py:38: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.'bicubic': pil_image.BICUBIC,
/opt/conda/lib/python3.8/site-packages/keras/utils/image_utils.py:39: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.'hamming': pil_image.HAMMING,
/opt/conda/lib/python3.8/site-packages/keras/utils/image_utils.py:40: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.'box': pil_image.BOX,
/opt/conda/lib/python3.8/site-packages/keras/utils/image_utils.py:41: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.'lanczos': pil_image.LANCZOS,
Warning: CARLA failed to import. Set the environment variable D4RL_SUPPRESS_IMPORT_ERROR=1 to suppress this message.
No module named 'agents.navigation'
/opt/conda/lib/python3.8/site-packages/gym/envs/registration.py:415: UserWarning: WARN: The `registry.env_specs` property along with `EnvSpecTree` is deprecated. Please use `registry` directly as a dictionary instead.logger.warn(
pybullet build time: May 20 2022 19:44:17

似乎报错里面又keras的问题
报错里面似乎有flow和Carla的问题,但是从这张图上看,maze2d似乎和这两个环境的关系并不大
在这里插入图片描述
mujoco似乎没有问题
import mujoco
import mujoco_py

这里面绕了一个大圈子,包括测试和重新安装

其实本质要解决的核心问题是
‘MazeEnv’ object has no attribute ‘sim’
我分别在
google stackoverflow bing上搜索,并没有任何有用的结果
突然看到github一个不起眼的地方issue

I managed to fix this error @ivanvoid by modifying the gym version:

pip uninstall gym
pip install gym==0.23.1

由于原始的版本是gym 0.24.1
所以可能是版本过高不支持
问题解决了!!!!!!

事后来看的话,首先要对问题有针对性地解决,抓住重点

确实不容易一下子定位到gym,但是如果能一开始就搜索到那一条,问题很酷啊就会解决


http://www.ppmy.cn/news/174835.html

相关文章

使用DashBoard管理k8s集群

一、DashBoard 之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实&#xff0c;为了提供更丰富的用户体验&#xff0c;kubernetes还开发了一个基于web的用户界面&#xff08;Dashboard&#xff09;。用户可以使用Dashboard部署容器化的应用&#xff0c;还…

Ubuntu 安装k8s集群

前言 本文介绍如何在ubuntu上部署k8s集群&#xff0c;大致可以分为如下几个步骤 修改ubuntu配置安装docker安装kubeadm、kubectl以及kubelet配置master节点将slave节点加入网络 因为k8s分为管理节点和工作节点&#xff0c;所以我们将要 在master上部署管理节点&#xff0c;在…

i5 13500怎么样相当于什么水平级别

i5-13500 &#xff0c;这CPU 都属于 Alder Lake C0 的马甲&#xff0c;采用了 6P 8E&#xff08;14C / 20T&#xff09;的设计 缓存方面&#xff0c;i5-13500 拥有 11.5MB L2 24MB L3、热设计功耗&#xff08;TDP&#xff09;为 65W i5 13500组装电脑怎么搭配更合适这些点很重…

i5 13400怎么样相当于什么水平级别

i5-13400&#xff0c;这款 CPU 都属于 Alder Lake C0 的马甲&#xff0c;采用 6P 4E&#xff08;10C / 16T&#xff09;的设计。 i5-13400 拥有 9.5MB L2 20MB L3 。虽然基础频率都是 2.5 GHz&#xff0c;但睿频分别可达 4.7 / 4.6 GHz 。i5 13400组装电脑怎么搭配更合适这些…

达人评测 i5 1240p 和i5 1135g7选哪个好

i5-1240P处理器具有4个性能核心&#xff0c;8个效能核心&#xff0c;总计12核心&#xff0c;16线程。12MB三级缓存&#xff0c;最大频率4.4GHz。锐炬Xe集成显卡有80EU&#xff0c;频率最高1.3GHz。CPU基础功率28W&#xff0c;最大功率64W&#xff0c;多线程性能提升可达70%。选…

入手评测 i7 1255u和i5 1235U选哪个好

i7 1255u 采用10nm制作工艺 十核十二线程设计&#xff0c;基准频率1.7GHz&#xff0c;BOOST频率4.7GHz。功耗(TDP) 15W 笔记本cpu选i5-1235U还是锐龙i7 1255u这些点很重要http://www.adiannao.cn/dy i5-1235U2个大核8个小核&#xff0c;12个线程基础频率&#xff1a;1.3GHz&a…

达人评测 i5 13500h和i5 12450h选哪个

i5 13500h 采用10纳米制作工艺 最高睿频 4.7GHz 十二核心十六线程 三级缓存 18MB热设计功耗(TDP) 45W 支持最大内存 64GB 内存类型 DDR4 3200MHz DDR5 5200MHz 笔记本选i5 13500h还是i5 12450h这些点很重要http://www.adiannao.cn/dy i5 12450H采用Intel 7工艺4大核4小核设计…

达人评测 酷睿i5 1240p和i5 12450h差距 i51240p和i512450h对比

i5-1240P处理器具有4个性能核心&#xff0c;8个效能核心&#xff0c;总计12核心&#xff0c;16线程。12MB三级缓存&#xff0c;最大频率4.4GHz。锐炬Xe集成显卡有80EU&#xff0c;频率最高1.3GHz。CPU基础功率28W&#xff0c;最大功率64W&#xff0c;多线程性能提升可达70%。 选…