robomimic基础教程(四)——开源数据集
robomimic开源了大量数据集及仿真环境,数据集标准格式为HDF5
目录
一、基础要求
二、使用步骤
1. 下载数据集
2. 后处理
3. 训练
4. 查看训练结果
三、HDF5数据集结构与可视化
1. 数据集结构
(1)根级别(data 组 group)
(2)轨迹(组 group )
(2.1)属性
(2.2)数据集
(2.3)观测(组 group)
(3)掩码(组 group)
2. 可视化
(1)查看HDF5数据结构
(2)查看数据集轨迹
一、基础要求
编译器:使用pycharm或者Colab notebook均可
pycharm安装在UMI复现基础环境安装配置全流程(二)——实用软件安装及卸载写过
二、使用步骤
robomimic数据集通过记录的环境数据,并用作给定离线RL或IL算法的输入。之后,可以通过以下方式使用robomimic数据集:
1. 下载所需的数据集
2. 对数据集进行后处理,保证与robomimic兼容
3. 用数据集训练机器人
1. 下载数据集
robomimic目前支持以下开箱即用的数据集。点击相应的(1)下载链接下载数据集,点击相应的(2)后处理链接对数据集进行后处理。
| Dataset | Task Types | Downloading | Postprocessing |
|---|---|---|---|
| robomimic v0.1 | Sim + Real Robot Manipulation | Link | Link |
| D4RL | Sim Locomotion | Link | Link |
| MOMART | Sim Mobile Manipulation | Link | Link |
| RoboTurk Pilot | Sim Robot Manipulation | Link | Link |
也可以在robomimic原程序文件夹中使用download_datasets.py函数下载,例如:
python robomimic/scripts/download_datasets.py --tasks lift --dataset_types ph
数据集存储为datasets/lift/ph/low_dim_v141.hdf5
2. 后处理
如果下载了low_dim或image数据集,那么数据集可以开箱即用!不需要后处理
如果下载了原始数据集,则必须对数据集进行后处理,因为没有存储观测值。必须运行dataset_states_to_obs.py
3. 训练
在下载和后处理之后,使用train.py对数据集进行训练
python train.py --dataset <PATH_TO_POSTPROCESSED_DATASET> --config <PATH_TO_CONFIG>
比如针对1中下载的low_dim_v141.hdf5,可以选择运行behavior cloning (BC)算法训练
python robomimic/scripts/train.py --config robomimic/exps/templates/bc.json --dataset datasets/lift/ph/low_dim_v141.hdf5 --debug

4. 查看训练结果
在tests文件夹中的tmp_model_dir文件夹中包括这几个文件夹,

更多详细内容查看robomimic应用教程(一)——模型训练
三、HDF5数据集结构与可视化
1. 数据集结构
所有后处理的 robomic 兼容数据集被存储为具有高度组织和层次结构的 HDF5 文件
单个数据集是具有以下结构的单个HDF5文件(链接)
HDF5 结构详细说明:
(1)根级别(data 组 group)
-
total(属性 attribute):表示数据集中状态-动作样本的总数,提供整体大小信息 -
env_args(属性 attribute):一个包含环境元数据的 JSON 字符串,记录了数据收集时的环境信息,该元数据包括:env_name:环境或任务的名称。env_type:环境的类型(例如 robosuite)env_kwargs:传递给环境的其他关键字参数,用于配置
(2)轨迹(组 group )
每个轨迹都被存储为一个组(如 demo_0、demo_1 等),在每个轨迹组内,包含以下内容:
(2.1)属性
-
num_samples(属性 attribute):该轨迹中的状态-动作样本数量 -
model_file(属性 attribute):MJCF MuJoCo 模型的 XML 字符串,对于 robosuite 数据集是特定的,对于非 robosuite 数据集则省略
(2.2)数据集
-
states(数据集 dataset):包含按时间顺序排列的 MuJoCo 状态,形状为 (N, D),其中:- N:轨迹中的样本数量。
- D:状态向量的维度。对于非 robosuite 数据集,可能为空或填充虚拟值
-
actions(数据集 dataset):包含环境中执行的动作,按时间顺序排列。其形状为(N, A),其中:- N:轨迹中的样本数量
- A:动作空间的维度
-
rewards(数据集 dataset):存储轨迹中从环境获得的奖励,形状为 (N, ),表示每个时间步的奖励 -
dones(数据集 dataset):指示在每个动作后,情节是否结束(1表示结束,0表示未结束),形状为 (N, )
(2.3)观测(组 group)
-
obs(组 group):包含观测键的多个数据集- <
obs_key_1>(数据集 dataset):第一个观测键,数据集的名称和形状可能不同(例如agentview_image,形状为(N,84,84,3)) <obs_key_2>(数据集 dataset):第二个观测键,依此类推
- <
-
next_obs(组 group):包含下一时间步的观测键,结构与obs组类似<obs_key_1>(数据集):对应的下一步观测<obs_key_2>(数据集):依此类推
(3)掩码(组 group)
mask(组 group):如果数据集包含过滤键(filter keys),则存在此组,用于选择数据集的子集(例如,验证轨迹)<filter_key_1>(数据集):包含轨迹标识符的列表,例如[“demo_0”, “demo_19”, “demo_35”],表示用于验证的过滤轨迹<filter_key_2>(数据集):其他过滤键,依此类推
该结构在不同的轨迹(如 demo_0、demo_1 等)中是一致的,每个轨迹都包含类似的属性和数据集格式
这种设置方式可以访问特定轨迹的数据、元数据、观测和环境中的动作,使其适合使用 robomimic 框架进行策略的训练和测试
2. 可视化
(1)查看HDF5数据结构
存储库提供了一个简单的实用程序脚本(get_dataset_info.py)来查看 hdf5 数据集结构和 hdf5 数据集的一些统计信息,脚本显示如下信息:
- 关于轨迹的统计信息(数量、平均长度等)
- 数据集中的筛选键(filter keys)
- 数据集中的环境元数据(environment metadata),用于构建收集数据的相同模拟器环境
- 第一个演示的数据集结构
可以通过 --verbose 参数打印每个过滤键下的演示键列表,以及所有用于演示的数据集结构
例如,使用 tests/assets/test_v141.hdf5 中的存储库打包得到的小型 hdf5 数据集
python get_dataset_info.py --dataset ../../tests/assets/test_v141.hdf5
对于如何编写自定义代码以处理 robomimic 数据集,可查看 jupyter 代码
相关分析在 robomimic应用教程(三)——深入理解robomimic数据集
(2)查看数据集轨迹
对于上面打包的小型 hdf5 数据集(基于 robosuite v1.4.1),使用 playback_dataset.py 脚本查看数据集轨迹
# For the first 5 trajectories, load environment simulator states one-by-one, and render "agentview" and "robot0_eye_in_hand" cameras to video at /tmp/playback_dataset.mp4
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --render_image_names agentview robot0_eye_in_hand --video_path /tmp/playback_dataset.mp4 --n 5# Directly visualize the image observations in the dataset. This is especially useful for real robot datasets where there is no simulator to use for rendering.
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --use-obs --render_image_names agentview_image --video_path /tmp/obs_trajectory.mp4# Visualize depth observations as well.
$ python playback_dataset.py --dataset /path/to/dataset.hdf5 --use-obs --render_image_names agentview_image --render_depth_names agentview_depth --video_path /tmp/obs_trajectory.mp4# Play the dataset actions in the environment to verify that the recorded actions are reasonable.
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --use-actions --render_image_names agentview --video_path /tmp/playback_dataset_with_actions.mp4# Visualize only the initial demonstration frames.
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --first --render_image_names agentview --video_path /tmp/dataset_task_inits.mp4相关文章:
robomimic基础教程(四)——开源数据集
robomimic开源了大量数据集及仿真环境,数据集标准格式为HDF5 目录 一、基础要求 二、使用步骤 1. 下载数据集 2. 后处理 3. 训练 4. 查看训练结果 三、HDF5数据集结构与可视化 1. 数据集结构 (1)根级别(data 组 group&a…...
胤娲科技:AI界的超级充电宝——忆阻器如何让LLM告别电量焦虑
当AI遇上“记忆橡皮擦”,电量不再是问题! 嘿,朋友们,你们是否曾经因为手机电量不足而焦虑得像个无头苍蝇?想象一下,如果这种“电量焦虑”也蔓延到了AI界, 特别是那些聪明绝顶但“耗电如喝水”的…...
前端大模型入门:使用Transformers.js手搓纯网页版RAG(二)- qwen1.5-0.5B - 纯前端不调接口
书接上文,本文完了RAG的后半部分,在浏览器运行qwen1.5-0.5B实现了增强搜索全流程。但受限于浏览器和模型性能,仅适合于研究、离线和高隐私场景,但对前端小伙伴来说大模型也不是那么遥不可及了,附带全部代码,…...
K-means聚类分析对比
K-means聚类分析,不同K值聚类对比,该内容是关于K-means聚类分析的,主要探讨了不同K值对聚类结果的影响。K-means聚类是一种常见的数据分析方法,用于将数据集划分为K个不同的类别。在这个过程中,选择合适的K值是非常关键…...
tar命令:压缩、解压的好工具
一、命令简介 用途: tar 命令用于创建归档文件(tarball),以及从归档文件中提取文件。 标签: 文件管理,归档。 特点: 归档文件可以保留原始文件和目录的层次结构,通常使用 .tar …...
Mac电脑上最简单安装Python的方式
背景 最近换了一台新的 MacBook Air 电脑,所有的开发软件都没有了,需要重新配环境,而我现在最常用的开发程序就是Python。这篇文章记录一下我新Mac电脑安装Python的全过程,也给大家一些思路上的提醒。 以下是我新电脑的配置&…...
Linux基础命令cd详解
cd(change directory)命令是 Linux 中用于更改当前工作目录的基础命令。它没有很多复杂的参数,但它的使用非常频繁。以下是 cd 命令的详细说明及示例。 基本语法 cd [选项] [路径] 常用选项 -L : 使用逻辑路径(默认选项&…...
【大模型对话 的界面搭建-Open WebUI】
Open WebUI 前身就是 Ollama WebUI,为 Ollama 提供一个可视化界面,可以完全离线运行,支持 Ollama 和兼容 OpenAI 的 API。 github网址 https://github.com/open-webui/open-webui安装 第一种 docker安装 如果ollama 安装在同一台服务器上&…...
如何在算家云搭建text-generation-webui(文本生成)
一、text-generation-webui 简介 text-generation-webui 是一个流行的用于文本生成的 Gradio Web UI。支持 transformers、GPTQ、AWQ、EXL2、llama.cpp (GGUF)、Llama 模型。 它的特点如下, 3 种界面模式:default (two columns), notebook, chat支持多…...
【Java SE】初遇Java,数据类型,运算符
🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 1. Java 概述 1.1 Java 是什么 Java 是一种高级计算机语言,是一种可以编写跨平台应用软件,完全面向对象的程序设计语言。Java 语言简单易学…...
XSS(内含DVWA)
目录 一.XSS的攻击方式: 1. 反射型 XSS(Reflected XSS) 2. 存储型 XSS(Stored XSS) 3. DOM型 XSS(DOM-based XSS) 总结 二..XSS的危害 三.常见的XSS方式 1.script标签 四.常见基本过滤方…...
【SpringCloud】环境和工程搭建
环境和工程搭建 1. 案例介绍1.1 需求1.2 服务拆分服务拆分原则服务拆分⽰例 2. 项目搭建 1. 案例介绍 1.1 需求 实现⼀个电商平台(不真实实现, 仅为演⽰) ⼀个电商平台包含的内容⾮常多, 以京东为例, 仅从⾸⻚上就可以看到巨多的功能 我们该如何实现呢? 如果把这些功能全部…...
基于Java开发的(控制台)模拟的多用户多级目录的文件系统
多级文件系统 1 设计目的 为了加深对文件系统内部功能和实现过程的理解,设计一个模拟的多用户多级目录的文件系统,并实现具体的文件物理结构、目录结构以及较为完善的文件操作命令集。 2 设计内容 2.1系统操作 操作命令风格:本文件系统的…...
tailwindcss group-hover 不生效
无效 <li class"group"><div class"tw-opacity-0 group-hover:tw-opacity-100" /> </li>配了tw前缀,group要改成tw-group // tailwind.config.jsmodule.exports {prefix: "tw-", }<li class"tw-group&q…...
python环境配置问题(个人经验)
很久没配置 python 新环境了,最近新项目需要进行配置,在配置过程中发现了不少问题,记录下。 问题1:fatal error: longintrepr.h: 没有那个文件或目录 这个问题的原因是新环境的 python 版本(3.10以上)与本地的版本(3.8.x)差异过…...
BERT训练之数据集处理(代码实现)
目录 1读取文件数据 2.生成下一句预测任务的数据 3.预测下一个句子 4.生成遮蔽语言模型任务的数据 5.从词元中得到遮掩的数据 6.将文本转化为预训练数据集 7.封装函数类 8.调用 import os import random import torch import dltools 1读取文件数据 def _read_wiki(data_d…...
一款辅助渗透测试过程,让渗透测试报告一键生成
《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…...
力扣最热一百题——颜色分类
目录 题目链接:75. 颜色分类 - 力扣(LeetCode) 题目描述 示例 提示: 解法一:不要脸用sort Java写法: 运行时间 解法二:O1指针 Java写法: 重点 运行时间 C写法:…...
2024年工业制造企业CRM研究报告:需求清单、市场格局、案例分析
我国是世界上产业体系最完备的国家,拥有全球规模最大、门类最齐全的生产制造体系,在500种主要工业产品中,有四成以上产品产量位居全球第一。2023年制造业增加值达33万亿元,占世界的比重稳定在30%左右,我国制造业增加值…...
Spring MVC参数接收 总结
1. 简介 Spring MVC可以简化从前端接收参数的步骤。 2. Param传参 通过设定函数入参和添加标记来简化接受: //参数接收 RequestMapping("product") ResponseBody //接受/product?productgoods&id123 //1.名称必须相同,2.不传值不会不…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
