当前位置: 首页 > news >正文

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.lryc.cn/news/509297.html

相关文章:

  • 重温设计模式--单例模式
  • 【人工智能】Python中的机器学习管道:如何用scikit-learn构建高效的ML管道
  • Redis存在安全漏洞
  • Scala图书管理系统
  • 【数据可视化案列】白葡萄酒质量数据的EDA可视化分析
  • Postman接口测试:全局变量/接口关联/加密/解密
  • vue+elementui实现下拉表格多选+搜索+分页+回显+全选2.0
  • 电商系统-产品经理
  • 《庐山派从入门到...》PWM板载蜂鸣器
  • 【河南新标】豫财预〔2024〕105号-《关于省级政务信息化建设项目支出预算标准的规定》-费用标准解读系列29
  • 【数据结构】数据结构整体大纲
  • 【C++基础】09、结构体
  • 大恒相机开发(2)—Python软触发调用采集图像
  • QT的前景与互联网岗位发展
  • 青藤入选工信部“2024年网络安全技术应用典型案例拟支持项目名单”
  • NVIDIA GPU 内部架构介绍
  • 重温设计模式----装饰模式
  • 第十六章 C++ 字符串
  • MySQL中Seconds_Behind_Master是怎么计算的
  • React Native 集成原生Android功能
  • Mac mini m4安装PD和Crack和关闭SIP
  • 详解C语言中的关键词:extern以及它需要注意的事项
  • 框架程序设计-简答以及论述
  • ce第六次作业
  • 为何页面搜索应避免左模糊和全模糊查询???
  • AI可信论坛亮点:合合信息分享视觉内容安全技术前沿
  • 在 Mac M2 上安装 PyTorch 并启用 MPS 加速的详细教程与性能对比
  • 生成式人工智能在生产型企业中的应用
  • Linux逻辑卷管理
  • 机器人加装电主轴【铣削、钻孔、打磨、去毛刺】更高效