一、安装ubuntu22.04

由于电脑原系统使用Windows11系统,想要使用ubuntu,通常会有三种方法。第一个方法是使用VMware Workstation Pro或其他虚拟机在Windows系统上创建独立虚拟环境;第二种方法是Windows提供了WSL2轻量级Linux运行系统;第三种方法是使用双系统建立两个互不干扰共存的两个系统。在FastTD3强化学习项目中需要NVIDIA显卡跑训练,而前两种方法是不能调用显卡硬件的,若只使用CPU则训练效果不好,且需要改动较多配置。

1、下载ubuntu镜像

到清华大学镜像网站选择ubuntu-24.04-desktop-amd64.iso下载到本地。

2、制作Ubuntu启动盘

准备一个8G以上的空u盘,这里使用的是Ventoy2Disk来制作启动盘。将u盘插入电脑后,运行Ventoy程序,选中u盘,点击安装按钮,u盘会被格式化并安装启动环境。安装完成后,点击确定。打开u盘的目录,将下载好的Ubuntu ISO文件拖入u盘中,这样启动盘就做好了。

3、调整磁盘空间

打开磁盘管理,通过选中E盘压缩卷,输入压缩大小(建议60G以上,因为该项目较大)。关闭Windows的BitLocker加密,进入系统设置,选择“隐私和安全性”,关闭“设备加密”。进入控制面板,硬件和声音,电源选项,选择电源按钮的功能,取消勾选“启动快速启动”。

4、进入BIOS设置

重启电脑,开机后按下F2进入BIOS,找到Secure Boot选项,设置为disabled。

5、u盘引导启动

将制作好的启动盘插入电脑,重启电脑进入BIOS系统。将USB设备(UEFI)设置为启动项目第一位。保存后重启电脑,进入安装系统,选择Try or Install Ubuntu回车,下面就是进入ubuntu的安装流程以及换源,本文不再赘述。

补充:扩充ubuntu磁盘的简单方法
如果在安装系统时,给系统的内存较少,根目录/内存不够,导致后面安装不了程序,可以使用下述方法。
先进入windows系统通过调整磁盘空间,分出一个空闲分区。将启动盘插入电脑,开机后就会进入安装界面,选择Try or Install Ubuntu回车,选择try ubuntu,打开终端,输入

sudo apt-get install gparted
sudo gparted

进入GParted界面,选中需要扩充的目录分区,通过拖动条上面的方框条即可改动,点击确认等待程序完成。因为磁盘改动是只能改动相邻的磁盘,所以出现空闲分区和操作分区隔了几个时,需要依次拖动,不会影响原分区的文件。

二、安装显卡驱动和Conda工具

1、准备工作

更新软件包

	sudo apt update && sudo apt upgrade -y

禁用Nouveau,其为Ubuntu自带的显卡驱动,会与NVIDIA驱动冲突

	sudo nano /etc/modprobe.d/blacklist.conf

在文件末尾添加以下内容

	blacklist nouveau
	options nouveau modeset=0

保存后执行

	sudo update-initramfs -u
	sudo reboot

重启后验证是否禁用成功,无输出即成功。

	lsmod | grep nouveau

补充:如果是NVIDIA驱动安装不成功,需要重新安装时,需要先卸载旧版NVIDIA驱动。

	sudo apt purge nvidia-*
	sudo apt autoremove

2、安装驱动

显示适合本电脑显卡的NVIDIA驱动

	sudo ubuntu-drivers devices

系统检查到显卡并列出可用的驱动版本,其中标为recommended的是推荐的版本,网上的教程通常建议不选择开源open版本。安装推荐版本的命令

	sudo apt install nvidia-driver-xxx

安装后可能需要重启

	sudo reboot

使用下方命令检查(中间无空格)是否安装成功并加载

	nvidia-smi

如果输出显卡信息(显卡型号和可支持的CUDA最新版本),则安装成功。

补充:还有一种手动安装方法,通过在NVIDIA官网,手动下载.run文件并运行,关闭图形界面,赋予执行权限并安装。其中关闭图形界面后,屏幕会黑屏,同时按下ctrl+alt+F2(或是F3~F6),进图tty界面。在安装系统时可能会出现菱形乱码,两个方法,一是使用export LANG=en_US.UTF-8临时修改为英文,二是将.run文件放到根目录下,这样tty里直接能找到并运行这个文件。

3、安装CUDA

前往CUDA官网(https://developer.nvidia.com/cuda-toolkit-archive),选择对应的CUDA Toolkit版本,依次选择Linux x86-64 Ubuntu 24.04 runfile(local),网站下面会出现对应的命令。运行下面命令,赋予执行权限并运行安装程序,cudaversionlinux需替换为下载的文件名

	chmod +x cudaversionlinux.run && sudo ./cudaversionlinux.run

依次选择continue,enter,输入accept。在向导中,取消驱动选项Driver xxx.xx.xx,其他组件继续安装。安装成功后,将CUDA的路径添加到环境变量中

	sudo nano ~/.bashrc

在文件末尾添加以下内容,安装的CUDA12.5版本需要调整

	export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}
	export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存文件后,运行以下命令使更改生效

	source ~/.bashrc

验证CUDA安装

	nvcc --version

如果显示CUDA的版本信息,则说明安装成功

4、安装anaconda

可以到清华镜像站下载,比如选择Anaconda3-2021.11-Linux-x86-64.sh,下载后进入安装的路径位置

	bash Anaconda3-2021.11-Linux-x86-64.sh

不断回车,>>>输入yes。下面手动设置环境变量

	sudo nano ~/.bashrc

在文件末尾添加以下内容

	export PATH="/home/xy/anaconda3/bin:$PATH"

保存后退出,运行以下命令使更改生效

	source ~/.bashrc
	conda list

进行测试,输出内容则安装成功。

5、安装PyTorch

安装python和pip,下载python3.10版本是

	sudo apt install python3.10
	sudo apt install python3-pip

前往PyTorch官网(https://pytorch.org/get-started/locally/),按照自己电脑的配置依次选择,然后运行与下方类似的命令

	pip3 install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cu129

补充:出现RuntimeError: CUDA error: no kernel image is available for execution on the device报错时,其表明电脑的GPU型号与当前安装的PyTorch不兼容,需要更新PyTorch安装。卸载旧的版本,torch,torchvision和torchaudio全部卸载

	pip3 uninstall torch torchvision torchaudio

然后再重新下载新的版本。

三、FastTD3复现

1、环境搭建

下载系统包

	sudo apt install libglfw3 libgl1-mesa-glx libosmesa6 git-lfs cmake

前往Github上FastTD3的项目网址,下载项目的资源。创建conda环境,并激活

	conda create -n fasttd3_playground -y python=3.10
	conda activate fasttd3_playground

终端进入项目的路径,下载其他环境的配置

	pip install -r requirements/requirements_playground.txt

2、程序运行

第一段代码运行的是一个标准、默认配置的 FastTD3 算法。第二段代码运行的是一个特定的、经过高度定制的 FastTD3 变体,这个变体被命名为 SimbaV2,并且使用了一套完全不同的参数来优化训练过程。首先运行项目的两个例子,分别运行

	# FastTD3
	python fast_td3/train.py \
	    --env_name T1JoystickFlatTerrain \
	    --exp_name FastTD3 \
	    --render_interval 5000 \
	    --seed 1
	# FastTD3 + SimbaV2
	python fast_td3/train.py \
	    --env_name T1JoystickFlatTerrain \
	    --exp_name FastTD3 \
	    --render_interval 5000 \
	    --agent fasttd3_simbav2 \
	    --batch_size 8192 \
	    --critic_learning_rate_end 3e-5 \
	    --actor_learning_rate_end 3e-5 \
	    --weight_decay 0.0 \
	    --critic_hidden_dim 512 \
	    --critic_num_blocks 2 \
	    --actor_hidden_dim 256 \
	    --actor_num_blocks 1 \
	    --seed 1

命令行返回
wandb: (1) Create a W&B account
wandb: (2) Use an existing W&B account
wandb: (3) Don’t visualize my results
wandb: Enter your choice:
此时应该输入1,需要打开W&B网页注册并登录,这样就能查看仿真模型。在这里如果选择3,程序将进入离线模式,所有日志都只会保存在本地的wandb文件夹中,而不会发送到W&B的云端服务器,故在W&B网站上查看这个run的页面时,会报告This run didn’t log media for key “render_video”, step 5000, index 0.
除了例程T1JoystickFlatTerrain,还可以选择诸如Go1JoystickFlatTerrain、 Go1JoystickRoughTerrain、 Go1Handstand、 T1JoystickRoughTerrain、 T1LowDimJoystickFlatTerrain、 T1LowDimJoystickRoughTerrain

补充:如果出现ModuleNotFoundError: No module named 'torch’和ModuleNotFoundError: No module named 'wandb’报错,可能的原因是运行脚本的Python环境和安装包的环境不是同一个,解决方法是确保为当前激活的python环境安装库

	python -m pip list | grep torch

可能还会出现torch.OutOfMemoryError: CUDA out of memory报错,表明CUDA现存不足,这个项目原本是使用A100显卡运行的,脚本默认的配置对于自己的电脑来说太高了,可以调低脚本对显存的需求,如–num_envs (并行环境数量): 从 1024 降低到 256;–batch_size (批处理大小): 从 32768 降低到 8192;–buffer_size (缓冲区大小): 从 10240 降低到 2560

	python fast_td3/train.py \
	    --env_name T1JoystickFlatTerrain \
	    --exp_name FastTD3 \
	    --render_interval 5000 \
	    --seed 1 \
	    --num_envs 256 \
	    --batch_size 8192 \
	    --buffer_size 2560

如果出现torch._inductor.exc.InductorError: SubprocException: An exception occurred in a subprocess: … RuntimeError: PassManager::run failed报错,这个错误 PassManager::run failed 是在 Triton 编译器内部发生的。它意味着在尝试优化和编译模型到 GPU 代码的某个环节,编译器自身遇到了一个它无法处理的内部 bug。解决这个问题最直接、最有效的方法就是关闭这个不稳定的 JIT 编译功能。

	python fast_td3/train.py \
	    --env_name T1JoystickFlatTerrain \
	    --exp_name FastTD3 \
	    --render_interval 5000 \
	    --seed 1 \
	    --num_envs 256 \
	    --batch_size 8192 \
	    --buffer_size 2560 \
	    --no-compile

FastTD3强化学习训练人形机器人和四足机器人

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐