Minari数据集标准全解析:Dataset ID、元数据与目录结构一文看懂

发布时间:2026/10/10 15:53:21

Minari数据集标准全解析:Dataset ID、元数据与目录结构一文看懂 【免费下载链接】MinariA standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities项目地址https://gitcode.com/gh_mirrors/mi/Minari点击查看免费下载Minari是一个面向离线强化学习Offline RL的数据集标准与托管框架它为数据集定义了统一的 ID 命名规则、元数据格式和目录结构。本文带你一文看懂 Minari 数据集标准的三大核心Dataset ID 命名语法、三层元数据体系与本地目录布局帮助你在几分钟内快速定位、下载并读懂任意一个 Minari 数据集。上图是 Minari 官方教程所用数据集D4RL/pen/human-v2中一个观测帧的真实数据教程源码——这正是 Minari 标准所规范的观测observations内容。Dataset ID 命名语法一个 ID 看懂数据集身份Minari 数据集的目录以Dataset ID命名它必须符合如下语法定义于 docs/content/dataset_standards.md(namespace/)(env_name/)dataset_name(-v(version))四个组成部分的含义组成部分是否可选含义示例namespace✅ 可选命名空间用于把一组数据集归到共同子目录可任意嵌套D4RLenv_name✅ 可选数据集来源的环境名官方强烈建议使用door、pendataset_name❌ 必填描述数据集内容如数据采集方式human人类演示version✅ 可选整数版本号从 0 开始v0、v2两个直观例子 无命名空间Adroit 开门环境的初始版本人类数据 →door/human-v0带命名空间同样的数据放到D4RL命名空间下 →D4RL/door/human-v0ID 的合法性由正则校验并可通过一对函数互转解析parse_dataset_id()将 ID 拆分为(namespace, dataset_name, version)三元组生成gen_dataset_id()由属性反向拼出 ID 字符串长尾提示如果 ID 书写不规范比如版本号缺失、多写了斜杠Minari 会抛出Malformed dataset ID错误并附上标准格式提示。本地目录结构数据集存放在哪里Minari 将所有本地数据集存放在统一的根目录下默认路径为~/.minari/datasets/可通过环境变量MINARI_DATASETS_PATH自定义实现见 minari/storage/datasets_root_dir.py。以minari download D4RL/pen/human-v2为例下载后的目录长这样 ~/.minari/datasets/ └── D4RL/ ├── namespace_metadata.json ← 命名空间元数据可含多级 └── pen/ └── human-v2/ ← 数据集目录与 Dataset ID 最后一级同名 ├── namespace_metadata.json └── data/ ← 数据文件目录必需 ├── metadata.json ← 数据集全局元数据 └── main_data.hdf5 ← 主数据文件HDF5 或 Arrow 格式几个关键规则数据集目录与命名空间目录分离D4RL和pen是命名空间可嵌套只有最后一段human-v2才是真正的数据集目录数据文件统一放在data/子目录目前支持两种文件格式HDF5主文件名main_data.hdf5见 minari/dataset/_storages/hdf5_storage.py和Arrow创建数据集时二选一远程托管数据集与本地使用同一套 ID 体系minari list remote即可浏览 Farama 官方服务器上的全部数据集。命名空间的创建、更新与元数据读写 API 位于 minari/namespace.pyAPI 文档见 docs/api/namespace/namespace.md。元数据体系三层描述让数据集会说话Minari 的元数据分三层全部以 JSON 格式存储、人机均可读数据集全局元数据metadata.json创建数据集时可附带全局元数据默认包含以下属性完整表格见 docs/content/dataset_standards.md属性类型说明dataset_idstr数据集唯一标识必填total_episodesint总回合数必填自动计算total_stepsint总步数必填自动计算action_spacegymnasium.Space动作空间描述observation_spacegymnasium.Space观测空间描述env_specstr环境注册的 JSON 字符串author/author_emailset of str作者与邮箱algorithm_namestr生成数据所用的专家策略名称minari_versionstr生成数据集的 Minari 版本requirementslist of strpip 风格的环境依赖列表code_permalinkstr生成代码的仓库链接元数据的自动落盘逻辑可参考 minari/dataset/minari_storage.py。每个 Episode 的奖励统计元数据每个回合会自动记录一组奖励统计指标方便你做轨迹筛选trajectory filtering指标说明rewards_max/rewards_min回合内奖励的最大 / 最小值rewards_mean/rewards_std回合奖励的均值 / 标准差rewards_sum未折扣的总回报undiscounted return命名空间元数据namespace_metadata.json每个命名空间目录下的namespace_metadata.json可存放任意 JSON 可序列化信息如description用来描述这个命名空间下的一整组数据集。读写实现见 get_namespace_metadata()。支持哪些观测与动作空间Minari 存储格式支持 Gymnasium 生态的全部常用空间保存时序列化为 JSONSpace用途Boxn 维连续空间可用上下界约束Discrete离散取值{0, 1, ..., n-1}MultiDiscrete多个离散空间的笛卡尔积MultiBinary二值向量空间Tuple/Dict组合空间元组 / 字典结构Text有界字符串空间序列化实现在 minari/serialization.py这也是 Minari 能被 D3RLPy、TorchRL 等框架无缝读取的基础集成测试见 tests/integrations/。实际场景从 ID 到训练曲线理解标准后实际使用只有两步用 ID 下载 → 用 ID 加载 minari download D4RL/pen/human-v2import minari dataset minari.load_dataset(D4RL/pen/human-v2, downloadTrue) episodes dataset.sample_episodes(10) # 随机采样 10 个回合每个采样到的回合是一个EpisodeData数据类包含id、observations、actions、rewards、terminations、truncations、infos七个字段结构定义见 minari/dataset/episode_data.pyAPI 文档见 docs/api/minari_dataset/episode_data.md。Minari 官方教程就用这套流程仅凭 25 条人类演示训练 IQL 算法完成了 Adroit 机器手转笔任务训练过程如下左训练损失Loss曲线右累计奖励Cumulative reward曲线——25 条演示就能学到可用的策略可见高质量离线数据集的价值。一张表总结核心要点概念核心规则参考位置Dataset ID(namespace/)(env_name/)dataset_name(-v(version))name 必填minari_dataset.py本地根目录~/.minari/datasets/可用MINARI_DATASETS_PATH覆盖datasets_root_dir.py数据文件data/目录下HDF5 或 Arrow 格式hdf5_storage.py全局元数据仅dataset_id/total_episodes/total_steps必填minari_storage.py命名空间元数据namespace_metadata.json任意 JSON 字段namespace.py掌握以上三部分你就能看懂、组织并复用任何 Minari 数据集了。完整标准文档请查阅 docs/content/dataset_standards.mdCLI 用法见 docs/content/minari_cli.md 赞分享【免费下载链接】MinariA standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities项目地址https://gitcode.com/gh_mirrors/mi/Minari点击查看免费下载相关推荐Calibre 格式转换实战指南把 EPUB 变成任何墨水屏都能打开的格式Calibre 格式转换实战指南把 EPUB 变成任何墨水屏都能打开的格式 把一份 EPUB 拖进 Calibre按一下快捷键稍等片刻就能拿到 Kindl桌面应用后端一文读懂 openJiuwen Agent Store项目目录结构、metadata.json 元数据规范与 community/archived 生命周期一文读懂 openJiuwen Agent Store项目目录结构、metadata.json 元数据规范与 community/archived 生命周期示例工程PaddleSeg 自定义数据集准备与配置实战目录结构、文件列表生成与 Dataset 配置详解PaddleSeg 自定义数据集准备与配置实战目录结构、文件列表生成与 Dataset 配置详解 本文是 PaddleSeg 自定义数据集使用指南完整覆盖从人工智能计算机视觉预训练创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/10 15:48:19

单元测试推广实战:从培训、工具到覆盖率基线的落地指南

带过几年测试团队之后,我对“单元测试推广”这件事的态度有了明显变化。早些年我以为无非是写几个测试文件、把覆盖率跑到某个数字、再向管理层交一份报告,结果第一轮推动就翻了车:开发说没时间,测试说不会写,覆盖率倒…

2026/10/10 15:48:19

虚拟团队与微服务协同架构:智能体契约化协作实践

1. 虚拟团队不是“搭积木”,而是重构人机协作的最小作战单元“我用7个AI智能体组了个虚拟团队,一周做了一个15微服务的电商平台”——这句话在技术圈刷屏时,我正蹲在某电商中台项目的现场改第17版订单履约状态机。旁边刚毕业的A同学盯着手机念…

2026/10/11 0:47:21

SecureC安全C库实战:从集成到避坑,给C代码焊上缓冲区护栏

简介:securec.zip是一份遵循C11 Annex K边界检查接口标准的安全C函数实现集,面向嵌入式、系统底层及对输入安全有严格要求的C语言开发者,可有效缓解缓冲区溢出、字符串截断等常见内存风险。压缩包共46个文件,主体为40个.c源文件&a…

2026/10/11 0:47:21

LSP注入与Winsock协议链:深入解析FTP流量拦截机制

简介:面向Windows底层网络开发者的LSP注入技术资源,使用C语言展示本地服务提供者的编写与注入全流程,重点解决FTP协议传输和Socket通信的拦截、监控与修改需求。压缩包共13个文件,包括3个cpp源文件、2个h头文件和1个dll动态库&…

2026/10/11 0:47:21

基于溯源图与RGAT的APT攻击检测实战指南

简介:本资源是华中科技大学2023届计算机专业毕业设计成果,聚焦APT攻击检测这一网络安全核心难题,面向高校学生、安全研究人员及入侵检测系统开发者,提供基于溯源图技术的检测方法优化实践方案。压缩包共26个文件,含11个…

2026/10/11 0:47:21

调度靠轨迹,不靠贴图:人车装备轨迹实时映射技术方案

一、方案概述(一)项目背景当前工业厂区、应急处置、高危作业、智慧运维等场景的人车装备调度管控,普遍长期依赖静态点位贴图、人工上报位置、固定图标占位、滞后视觉展示的传统调度模式。调度中心仅能通过二维静态图标、人工实时汇报、定时点…

2026/10/11 0:47:21

安全边界要算得出米数:真实高程约束下的泄漏扩散推演技术方案

一、方案概述(一)项目背景危化储罐、反应装置、压力管道、仓储库区等重大危险源场景,普遍存在介质泄漏、气体扩散、液体流淌、蒸汽蔓延等安全风险,是化工、能源、制造行业安全生产事故的主要诱发源头。当前国内重大危险源安全边界…

2026/10/11 0:42:20

工业级OCR与人脸检测联合流水线实战

简介:这是一套面向人工智能初学者与计算机视觉实践者的综合项目教程包,聚焦OCR文字识别、人脸检测与视频分析等核心能力训练,覆盖从环境搭建到多模态应用的完整学习路径。资源包含128个文件,以41篇Markdown教程文档为学习主线&…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑