d3rlpy离线强化学习算法库安装及使用
创始人
2024-03-17 03:39:51
0

GitHub - takuseno/d3rlpy: An offline deep reinforcement learning library

d3rlpy,离线强化学习算法库

我装在windows下用anaconda,按照官网教程

conda install -c conda-forge d3rlpy

第一次安装报错CondaSSLError: OpenSSL appears to be unavailable on this machine

[报错解决]CondaSSLError: OpenSSL appears to be unavailable on this machine. OpenSSL is required to downl_一件迷途小书童的博客-CSDN博客

参考这篇文章解决后正常安装没问题,值得注意的是d3rkpy安装时包含cudatoolkit11.几,我在想这个在不同电脑上可能之后会出错,不过后面运行算法时可以选择是否使用GPU

我是打算用离线强化学习算法,安装后测试,官网上也有测试代码

import d3rlpy# prepare dataset
dataset, env = d3rlpy.datasets.get_d4rl('hopper-medium-v0')# prepare algorithm
cql = d3rlpy.algos.CQL(use_gpu=True)# train
cql.fit(dataset,eval_episodes=dataset,n_epochs=100,scorers={'environment': d3rlpy.metrics.evaluate_on_environment(env),'td_error': d3rlpy.metrics.td_error_scorer,},
)

看得出来,这接口用起来非常方便啊

因为我没装d4rl所以肯定是失败了,d4rl数据集查了下资料可能无法装在windows环境下,有点难办。可以使用下面这个在测试,用的是d3rlpy自带用于测试的数据集,也是比较常用的两个环境,具体是在d3rlpy的文档上找到的

import d3rlpy# prepare dataset
# dataset, env = d3rlpy.datasets.get_d4rl('CartPole-v0')
dataset, env = d3rlpy.datasets.get_pendulum("random")# prepare algorithm
cql = d3rlpy.algos.CQL(use_gpu=True)# train
cql.fit(dataset,eval_episodes=dataset,n_epochs=100,scorers={'environment': d3rlpy.metrics.evaluate_on_environment(env),'td_error': d3rlpy.metrics.td_error_scorer,},
)

资料很充分,d3rlpy文档:d3rlpy.datasets.get_cartpole — d3rlpy documentation

 成功运行:

如果失败的话可能是下载失败,

在这找到下载网址,自己下载到本地,改成规定的名字即可,放到对d3rlpy_data文件夹里,再运行时就不需要在线下载了,比如这样

 

之后回到d4rl,我打算把自己的数据集按照d4rl的格式来编写,但我不打算装d4rl

可以看到在d3rlpy中读取d4rl的数据集主要是用d4rl中的get_dataset函数,于是我索性把d4rl中这个函数搬到d3rlpy中,其实就是读取h5格式的函数,也挺好移植,主要也就这一段

        data_dict = {}with h5py.File(h5path, 'r') as dataset_file:for k in tqdm(get_keys(dataset_file), desc="load datafile"):try:  # first try loading as an arraydata_dict[k] = dataset_file[k][:]except ValueError as e:  # try loading as a scalardata_dict[k] = dataset_file[k][()]

注意还需要

import h5py
from tqdm import tqdm


def get_keys(h5file):keys = []def visitor(name, item):if isinstance(item, h5py.Dataset):keys.append(name)h5file.visititems(visitor)return keys

至于原先是个类,我感觉好像也不需要,同时还是把在线改掉,直接变成一个绝对位置(这个在d4rl中也可以找到下载的网址)

h5path = "D:\xxx_project\pycharm\offline_RL\d3rlpy_data\hopper_random.hdf5"

运行成功

我考虑下一步制作自己的hdf5格式数据集,及做下自己的gym环境

甚至不能算是入门,希望没有问题,欢迎指正

相关内容

热门资讯

专业文章丨跨境模具纠纷高效和解... 【珠海律师、珠海法律咨询、珠海律师事务所、京师律所、京师珠海律所】 (本文转载自北京市京师律师事务所...
全总等三部门联合发布2025年... 新华社北京12月25日电(记者樊曦、冯家顺)记者12月25日从全国总工会了解到,全国总工会与最高人民...
对“问题法规”要及时纠正 从事网约车经营要求车辆购置总价不得低于12万元、残疾人机动轮椅车登记需有本市常住户籍……日前提请全国...
专业文章丨相对不起诉:一起交通... 【珠海律师、珠海法律咨询、珠海律师事务所、京师律所、京师珠海律所】 (本文转载自北京市京师郑州律师事...
巡回审判进商场 两起纠纷就地解 央广网长春12月26日消息(记者舒震)“真没想到法官能把法庭‘搬’到商场里来,更没想到当庭就把我们的...
专业文章丨赠与车辆未交付 可以... 【珠海律师、珠海法律咨询、珠海律师事务所、京师律所、京师珠海律所】 (本文转载自北京市京师合肥律师事...
广西重拳打击制售假劣农资犯罪 ... 中新网南宁12月26日电 (韦小婷)广西壮族自治区农业农村厅25日介绍,今年开春以来,该厅在广西开展...
政策面前瞻:多元工具下的宽松红... 我们来聊聊今年政策的整体变化。感受特别明显的是,今年政策利率的锚发生了一些切换,包括货币政策投放工具...
政策力挺消费!这波逢低布局机会... 板块轮动已经成为A股常态。被看作“长坡厚雪”的消费板块,已经走过了一段漫长的调整路,估值也跌回了历史...