深度学习项目的训练命令通常是是根据训练文件(train.py)设定来接收参数
举例参考
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node 4 --master_port 12345 train.py --dataset rrsisd --model_id RMSIN --epochs 40 --img_size 480 2>&1 | tee ./output
命令解释
1.CUDA_VISIBLE_DEVICES=0,1,2,3
:
-
这个环境变量用于指定哪些 GPU 可用。在这里,设备 0 到 3 被设置为可用 GPU,这意味着你的程序将会使用这些 GPU 进行训练。
-
单个GPU训练命令
python
CUDA_VISIBLE_DEVICES=0 python train.py --dataset rrsisd --model_id RMSIN --epochs 40 --img_size 480 2>&1 | tee ./output
-
python -m torch.distributed.launch
:- 这是 PyTorch 的分布式训练模块。使用
-m
选项可以让 Python 作为模块运行,torch.distributed.launch
会负责启动多个进程。
- 这是 PyTorch 的分布式训练模块。使用
-
--nproc_per_node 4
:- 指定每个节点(通常是每个机器)要启动的进程数。在这个例子中,指定为 4,这意味着会启动 4 个训练进程,分别使用前面指定的 4 个 GPU。
-
--master_port 12345
:- 这是用于进程间通信的主端口号。所有进程将通过这个端口进行通信。
-
train.py
:- 这是你的训练脚本文件,包含了模型训练的代码。
-
--dataset rrsisd
:- 指定要使用的数据集名称为
rrsisd
。你需要确保在代码中相应地处理这个数据集。
- 指定要使用的数据集名称为
-
--model_id RMSIN
:- 这是指定模型 ID 的参数。具体使用时需要在
train.py
中处理这个参数。
- 这是指定模型 ID 的参数。具体使用时需要在
-
--epochs 40
:- 指定训练的轮数(epochs),在这个例子中为 40 轮。
-
--img_size 480
:- 指定输入图像的尺寸为 480(假设是正方形图像)。
-
2>&1 | tee ./output
:
2>&1
将标准错误输出(stderr)重定向到标准输出(stdout),确保所有输出都被捕获。| tee ./output
将输出同时写入到output
文件中,并在终端中显示。这样你可以在运行时查看日志,同时保留日志文件。