服务器:58.57.119.103
项目地址:/data2/xuzhen8/yzh/projects/manifold-distillation
环境:conda activate distillation
运行脚本:torchrun --master_port=25641 --nproc_per_node=1 main.py --distributed --output_dir /data2/xuzhen8/yzh/projects/manifold-distillation/output --data-path /data2/xuzhen8/yzh/datasets/imagenet --teacher-path /data2/xuzhen8/yzh/projects/manifold-distillation/teacher_model/cait_s24_224.pth --model deit_tiny_patch16_224 --teacher-model cait_s24_224 --distillation-type soft --distillation-alpha 1 --distillation-beta 1 --w-sample 0.1 --w-patch 4 --w-rand 0.2 --K 192 --s-id 3 --t-id 4 --drop-path 0
torchrun: 这是用于启动 PyTorch 分布式训练的工具。它将帮助设置并启动多个训练任务,每个任务在一个 GPU 上运行。
--master_port=25641: 指定主节点的端口号。多个训练任务需要通过该端口进行通信。
--nproc_per_node=1: 指定每个节点上的 GPU 数量,这里是每个节点使用 1 个 GPU。
main.py: 训练脚本的文件名。torchrun 将启动多个该脚本的副本,并在分布式环境中进行训练。
--distributed: 表示启用分布式训练模式。
--output_dir /data2/xuzhen8/yzh/projects/manifold-distillation/output: 指定输出目录,训练过程中的日志、模型检查点等结果将保存在这个目录中。
--data-path /data2/xuzhen8/yzh/datasets/imagenet: 指定数据集的路径,这里是 ImageNet 数据集的路径。
--teacher-path /data2/xuzhen8/yzh/projects/manifold-distillation/teacher_model/cait_s24_224.pth: 指定教师模型的路径。
--model deit_tiny_patch16_224: 指定学生模型的类型,这里是一个名为 deit_tiny_patch16_224 的模型。
--teacher-model cait_s24_224: 指定教师模型的类型,这里是一个名为 cait_s24_224 的模型。
--distillation-type soft: 指定知识蒸馏的类型,这里是软蒸馏。
--distillation-alpha 1: 指定软蒸馏的超参数 alpha。
--distillation-beta 1: 指定软蒸馏的超参数 beta。
--w-sample 0.1: 指定样本权重的超参数。
--w-patch 4: 指定分块权重的超参数。
--w-rand 0.2: 指定随机权重的超参数。
--K 192: 指定超参数 K 的值。
--s-id 3: 指定学生模型使用的 GPU ID。
--t-id 4: 指定教师模型使用的 GPU ID。
--drop-path 0: 指定超参数 drop_path 的值。
报错:
解决方式:运行脚本加个参数即可. 加个--master_port=25641
‘VisionTransformer' object has no attribute 'dist_token'
解决方式:pip install timm==0.5.4
下图为成功训练上的截图