iDP3复现代码模型训练全流程(一)——train_policy.sh

iDP3 核心脚本包括三个:deploy_policy.sh、vis_dataset.sh、train_policy.sh,分别代表了部署、预处理和训练,分别作为对应 py 脚本的参数设置前置环节

训练环节仅需运行指令:

# 3d policy
bash scripts/train_policy.sh idp3 gr1_dex-3d 0913_example# 2d policy
bash scripts/train_policy.sh dp_224x224_r3m gr1_dex-image 0913_example

idp3、dp_224x224_r3m:policy 名称

gr1_dex-3d、gr1_dex-image:Fourier GR1、dexterous hands-3d/image

0913_example:附加信息,某个特定时间点的样例

此脚本输入设置包括:算法名称、任务名称和其他配置信息,支持调试模式和训练模式,并集成 wanb 作为日志记录工具

接下来分析一下其运行逻辑

目录

1 变量设置

2 命令行参数

3 衍生变量

4 调试模式

5 切换目录并设置环境变量

6 执行 train.py


1 变量设置

dataset_path=/home/ze/projects/Improved-3D-Diffusion-Policy/training_data_exampleDEBUG=False
wandb_mode=offline

dataset_path:训练数据集路径

DEBUG:切换调试模式(True)或训练模式(False)

wandb_mode:配置 wandb 记录模式,支持 online 或 offline

2 命令行参数

alg_name=${1}
task_name=${2}addition_info=${3}

接收算法名称(alg_name)、任务名称(task_name)和附加信息(addition_info)作为输入参数

3 衍生变量

config_name=${alg_name}seed=0
exp_name=${task_name}-${alg_name}-${addition_info}
run_dir="data/outputs/${exp_name}_seed${seed}"gpu_id=0
echo -e "\033[33mgpu id (to use): ${gpu_id}\033[0m"

config_name:根据算法名称设置配置文件名

exp_name:构建唯一的实验名称

run_dir:指定输出文件的存储目录

gpu_id:使用的 GPU ID

4 调试模式

if [ $DEBUG = True ]; thensave_ckpt=False# wandb_mode=onlineecho -e "\033[33mDebug mode!\033[0m"echo -e "\033[33mDebug mode!\033[0m"echo -e "\033[33mDebug mode!\033[0m"
elsesave_ckpt=Trueecho -e "\033[33mTrain mode\033[0m"
fi

根据 DEBUG 变量的值,动态地设置训练参数和运行模式

此处展开说明一下:

如果 DEBUG=True,则进入调试模式

如果 DEBUG=False,则进入训练模式

在调试模式下,save_ckpt 被设置为 False,即不会保存训练过程中的模型检查点(checkpoints)

调试模式通常用于快速验证脚本或模型是否可以正常运行,避免浪费存储空间和时间在保存中间结果上

此外,注释部分可以切换 wandb(Weights and Biases)的记录模式到在线模式,以实时查看调试日志。当前注释状态下,wandb_mode 保持原始的 offline 配置,以减少调试期间的外部依赖

echo -e "\033[33mDebug mode!\033[0m"

在终端中打印出黄色的 “Debug mode!” ,强调处于调试模式

echo:用于输出文本

-e:启用转义序列

"\033[33m":设置文本颜色为黄色(ANSI 转义序列)

"\033[0m":重置文本样式(返回到默认颜色)

然后就,重要的事情说三次......

5 切换目录并设置环境变量

cd Improved-3D-Diffusion-Policyexport HYDRA_FULL_ERROR=1 
export CUDA_VISIBLE_DEVICES=${gpu_id}

切换到项目目录以执行训练脚本

配置环境变量以启用完整错误跟踪(HYDRA_FULL_ERROR),并指定用于训练的 GPU 设备

6 执行 train.py

python train.py --config-name=${config_name}.yaml \task=${task_name} \hydra.run.dir=${run_dir} \training.debug=$DEBUG \training.seed=${seed} \training.device="cuda:0" \exp_name=${exp_name} \logging.mode=${wandb_mode} \checkpoint.save_ckpt=${save_ckpt} \task.dataset.zarr_path=$dataset_path 

--config-name:yaml 配置文件名

task:任务名

hydra.run.dir:Hydra 输出目录

training.debug:调试模式标志

training.seed:设置随机种子以确保可重复性

training.device:选择 GPU 设备

exp_name:指定实验名称,用于日志记录

logging.mode:配置 wandb 日志模式

checkpoint.save_ckpt:是否保存模型检查点

task.dataset.zarr_path:数据集路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/64993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景

Chainbase AVS 主网的正式上线,正在将 Chainbase 不同的层进行深入的串联,为 Chainbase 数据网络带来了验证和处理方面的应用与拓展的能力,并成为数据体系全面启动的新契机。 在 12 月 4 日,链原生的 Web3 AI 数据网络 Chainbase …

Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀 Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

Jenkins 任意文件读取(CVE-2024-23897)修复及复现

Jenkins任意文件读取漏洞CVE-2024-23897修复及复现 漏洞详情影响范围漏洞复现修复建议 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行…

智慧农业云平台与水肥一体化:道品科技引领农业现代化新潮流

在当今科技飞速发展的时代,农业也正经历着一场深刻的变革。智慧农业云平台和水肥一体化技术的出现,为农业生产带来了前所未有的机遇和挑战。 一、智慧农业云平台:农业生产的 “智慧大脑” 智慧农业云平台就像是农业生产的 “智慧大脑”&…

C++--------内存结构

C内存结构 程序内存分区: 栈区(Stack):由编译器自动分配和释放,用于存放函数的参数值、局部变量等。其操作方式类似于数据结构中的栈,先进后出。例如,在函数调用时,函数内部的局部变…

f(f(x))=x^2 -11x+36, 求f(6)的值,

偶然看到的一个题目,一时兴起,做了一下。题目如下 简单粗暴的思路是待定系数法,盲猜f(x)是个2次函数,令f(x)ax^2bxc ,带入原式,发现矛盾(计算略)就想放弃了。 忽然看到如果带入6 的话&#xf…

用Python PySide6 复刻了两软件UI 做下练习

图样 1 代码 1: # -*- coding: utf-8 -*-import sys from PySide6.QtCore import (QCoreApplication, QMetaObject, QRect, QDate) from PySide6.QtGui import QIcon, QPixmap, QColor from PySide6.QtWidgets import (QApplication, QDialog, QLineEdit, QPushBut…

活动图的理解和实践

在软件开发和系统设计中,理解系统的工作流程和并发行为是至关重要的。活动图作为一种重要的建模工具,为我们提供了一种直观且有效的方法来描述这些复杂的过程。本文将详细探讨活动图的理解与实践,包括其基本概念、用途、构建方法以及实际应用…

Redis缓存数据库

1、介绍 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库 redis的官网:redis.io 注:域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地 1、redis的特点: 1.丰富的数…

flink sink kafka

接上文:一文说清flink从编码到部署上线 之前写了kafka source,现在补充kafka sink。完善kafka相关操作。 环境说明:MySQL:5.7;flink:1.14.0;hadoop:3.0.0;操作系统&#…

WebRTC搭建与应用(五)-Coturn踩坑记

WebRTC搭建与应用(五)-Coturn踩坑记 近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC等有了初步了解,在此记录一下,以防遗忘。 第五章 WebRTC搭建与应用(五)-Coturn踩坑记 文章目录 WebRTC搭建与应用(五)-Coturn踩坑记前…

@vue/cli启动异常:ENOENT: no such file or directory, scandir

参考:https://blog.csdn.net/qq_44355188/article/details/122239566 首先异常报错是:ENOENT: no such file or directory, scandir ‘D:\Data\Project\VueProject\hello\node_modulesvue\cli-plugin-eslint\locales’;我的vue/cli版本是 4.5.15 重点是…

Git进阶:本地或远程仓库如何回滚到之前的某个commit

在Git的使用过程中,我们经常会遇到需要回滚到之前某个commit的情况。无论是为了修复错误、撤销更改,还是为了重新组织代码,回滚到特定commit都是一个非常有用的技能。本文将介绍几种常用的回滚方法,帮助读者更好地掌握Git版本控制…

【java设计模式】1 - 软件设计原则

1,软件设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 1.1 开闭原则 对扩展开…

如何安全获取股票实时数据API并在服务器运行?

以下是安全获取股票实时数据 API 并在服务器运行的方法: 选择合适的券商或交易平台 评估自身需求:明确自己的交易策略、交易品种、交易频率等需求,以及对 股票api 的功能、性能、稳定性等方面的要求。调研券商或平台:了解不同券商…

kali切换root用户显示su: Authentication failure解决方案

1.切换root用户显示su: Authentication failure 2.解决方式:使用sudo su命令 3.密码新版的应该都是kali

一篇文章学会HTML

目录 页面结构 网页基本标签 图像标签 超链接标签 文本链接 图像链接 锚链接 功能链接 列表 有序列表 无序列表 自定义列表 表格 跨列/跨行 表头 媒体元素 视频 音频 网站的嵌套 表单 表单元素 文本框 单选框 多选框 按钮 下拉框 文本域和文件域 表…

【开源】一款基于SpringBoot的智慧小区物业管理系统

一、下载项目文件 项目文件源码链接:https://pan.quark.cn/s/3998d958e182如出现网盘空间不够存的情况!!!解决办法是先用夸克手机app注册,然后保存上方链接,就可以得到1TB空间了!!&…

北理工计算机考研难度分析

总体情况概述 北京理工大学计算机学院2024届考研呈现出学硕扩招、专硕稳定的特点。学硕实际录取27人(含非全统考),复试线360分,复试录取率76%;计算机技术专硕(不含珠海)实际录取29人,复试线324分,复试录取率86%。两个…

细说STM32F407单片机轮询方式读写SPI FLASH W25Q16BV

目录 一、工程配置 1、时钟、DEBUG 2、GPIO 3、SPI2 4、USART6 5、NVIC 二、软件设计 1、FALSH (1)w25flash.h (2) w25flash.c 1)W25Q16基本操作指令 2)计算地址的辅助功能函数 3)器…