YOLOv8训练参数详解(全面详细、重点突出、大白话阐述小白也能看懂)
文章目录
- 全部参数表
- 示例代码
- 1. model ✰✰✰✰✰
- 2. data ✰✰✰✰✰
- 3. epochs ✰✰✰
- 4. patience
- 5. batch ✰✰✰✰✰
- 6. imgsz ✰✰✰✰✰
- 7. save、save_period ✰✰✰
- 8. cache
- 9. device ✰✰✰✰✰
- 10. workers ✰✰✰
- 11. project
- 12. name
- 13. exist_ok
- 14. pretrained
- 15. optimizer
- 16. verbose
- 17. seed
- 18. deterministic
- 19. single_cls
- 20. rect
- 21. cos_lr
- 22. close_mosaic
- 23. resume
- 24. amp
- 25. lr0
- 26. lrf
- 27. momentum
- 28. weight_decay
- 29. warmup_epochs
- 30. warmup_momentum
- 31. warmup_bias_lr
- 32. box、cls
- 33. dfl
- 34. pose
- 35. kobj
- 36. label_smoothing
- 37. nbs
- 38. overlap_mask
- 39. mask_ratio
- 40. dropout
- 41. val
YOLO又更新了,已经来到了YOLOv8。
全部参数表
首先罗列一下官网提供的全部参数。
https://docs.ultralytics.com/modes/train/
Key | Value | Description |
---|---|---|
model | None | path to model file, i.e. yolov8n.pt, yolov8n.yaml |
data | None | path to data file, i.e. coco128.yaml |
epochs | 100 | number of epochs to train for |
patience | 50 | epochs to wait for no observable improvement for early stopping of training |
batch | 16 | number of images per batch (-1 for AutoBatch) |
imgsz | 640 | size of input images as integer or w,h |
save | True | save train checkpoints and predict results |
save_period | -1 | Save checkpoint every x epochs (disabled if < 1) |
cache | False | True/ram, disk or False. Use cache for data loading |
device | None | device to run on, i.e. cuda device=0 or device=0,1,2,3 or device=cpu |
workers | 8 | number of worker threads for data loading (per RANK if DDP) |
project | None | project name |
name | None | experiment name |
exist_ok | False | whether to overwrite existing experiment |
pretrained | False | whether to use a pretrained model |
optimizer | ‘SGD’ | optimizer to use, choices=[‘SGD’, ‘Adam’, ‘AdamW’, ‘RMSProp’] |
verbose | False | whether to print verbose output |
seed | 0 | random seed for reproducibility |
deterministic | True | whether to enable deterministic mode |
single_cls | False | train multi-class data as single-class |
rect | False | rectangular training with each batch collated for minimum padding |
cos_lr | False | use cosine learning rate scheduler |
close_mosaic | 0 | (int) disable mosaic augmentation for final epochs |
resume | False | resume training from last checkpoint |
amp | True | Automatic Mixed Precision (AMP) training, choices=[True, False] |
lr0 | 0.01 | initial learning rate (i.e. SGD=1E-2, Adam=1E-3) |
lrf | 0.01 | final learning rate (lr0 * lrf) |
momentum | 0.937 | SGD momentum/Adam beta1 |
weight_decay | 0.0005 | optimizer weight decay 5e-4 |
warmup_epochs | 3.0 | warmup epochs (fractions ok) |
warmup_momentum | 0.8 | warmup initial momentum |
warmup_bias_lr | 0.1 | warmup initial bias lr |
box | 7.5 | box loss gain |
cls | 0.5 | cls loss gain (scale with pixels) |
dfl | 1.5 | dfl loss gain |
pose | 12.0 | pose loss gain (pose-only) |
kobj | 2.0 | keypoint obj loss gain (pose-only) |
label_smoothing | 0.0 | label smoothing (fraction) |
nbs | 64 | nominal batch size |
overlap_mask | True | masks should overlap during training (segment train only) |
mask_ratio | 4 | mask downsample ratio (segment train only) |
dropout | 0.0 | use dropout regularization (classify train only) |
val | True | validate/test during training |
受限于博主能力有限。下文的解释,如有问题,欢迎大家指出。
示例代码
后续讲解的参数都可以像model.train(data=‘coco128.yaml’, epochs=100, imgsz=640)这里一样,例如参数名A,参数值为B,则可以写为
model.train(A=B)
from ultralytics import YOLO
# 加载模型
model = YOLO('yolov8n.yaml') # 从yaml文件加载
model = YOLO('yolov8n.pt') # 加载预训练模型 (推荐)
model = YOLO('yolov8n.yaml').load('yolov8n.pt') # 从 YAML加载 然后再加载权重
# 指定训练参数开始训练
model.train(data='coco128.yaml', epochs=100, imgsz=640)
1. model ✰✰✰✰✰
model
: 模型文件的路径。这个参数指定了所使用的模型文件的位置,例如 yolov8n.pt
或 yolov8n.yaml
。
选择.pt和.yaml的区别
.pt
类型的文件是从预训练模型的基础上进行训练。若我们选择yolov8n.pt
这种.pt类型的文件,其实里面是包含了模型的结构和训练好的参数的,也就是说拿来就可以用,就已经具备了检测目标的能力了,yolov8n.pt
能检测coco中的80个类别。假设你要检测不同种类的狗,那么yolov8n.pt
原本可以检测狗的能力对你训练应该是有帮助的,你只需要在此基础上提升其对不同狗的鉴别能力即可。但如果你需要检测的类别不在其中,例如口罩检测,那么就帮助不大。.yaml
文件是从零开始训练。采用yolov8n.yaml
这种.yaml文件的形式,在文件中指定类别,以及一些别的参数。
模型种类选择,是n,s,m,还是l,x?
像 YOLOv8x 和 YOLOv8x6 这样较大模型几乎在所有情况下都会产生更好的结果,但参数量更大,需要更多的显卡内存来训练,并且运行速度更慢。
2. data ✰✰✰✰✰
data
: 数据文件的路径。该参数指定了数据集文件的位置,例如 coco128.yaml
。数据集文件包含了训练和验证所需的图像、标签。
组织数据数据目录
官方给出的coco128.yaml
如下,提示我们有三种配置方式。
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
nc: 80 # number of classes
names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
'hair drier', 'toothbrush'] # class names
1. 指定训练数据集的图片的文件夹
yaml文件中指定是images的位置,yolo会自动寻找同级目录下labels文件夹中的同名标签,我们需要在labels文件夹中准备好标签文件。
├── shop200
└── images
└── train2019
└── 20180824-13-43-21-401.jpg
└──*****
└── 20181025-16-37-47-196.jpg
└──test2019
└── labels
└── train2019
└── 20180824-13-43-21-401.txt
└──*****
└── 20181025-16-37-47-196.txt
└──test2019
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: D:/dataset/shop200 # dataset root dir
train: images/train2019 # train images (relative to 'path') 128 images
val: images/test2019 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
nc: 200 # number of classes
names: ['1_puffed_food', '2_puffed_food', '3_puffed_food', '4_puffed_food', '5_puffed_food', '6_puffed_food', '7_puffed_food', '8_puffed_food', '9_puffed_food', '10_puffed_food', '11_puffed_food', '12_puffed_food', '13_dried_fruit', '14_dried_fruit', '15_dried_fruit', '16_dried_fruit', '17_dried_fruit', '18_dried_fruit', '19_dried_fruit', '20_dried_fruit', '21_dried_fruit', '22_dried_food', '23_dried_food', '24_dried_food', '25_dried_food', '26_dried_food', '27_dried_food', '28_dried_food', '29_dried_food', '30_dried_food', '31_instant_drink', '32_instant_drink', '33_instant_drink', '34_instant_drink', '35_instant_drink', '36_instant_drink', '37_instant_drink', '38_instant_drink', '39_instant_drink', '40_instant_drink', '41_instant_drink', '42_instant_noodles', '43_instant_noodles', '44_instant_noodles', '45_instant_noodles', '46_instant_noodles', '47_instant_noodles', '48_instant_noodles', '49_instant_noodles', '50_instant_noodles', '51_instant_noodles', '52_instant_noodles', '53_instant_noodles', '54_dessert', '55_dessert', '56_dessert', '57_dessert', '58_dessert', '59_dessert', '60_dessert', '61_dessert', '62_dessert', '63_dessert', '64_dessert', '65_dessert', '66_dessert', '67_dessert', '68_dessert', '69_dessert', '70_dessert', '71_drink', '72_drink', '73_drink', '74_drink', '75_drink', '76_drink', '77_drink', '78_drink', '79_alcohol', '80_alcohol', '81_drink', '82_drink', '83_drink', '84_drink', '85_drink', '86_drink', '87_drink', '88_alcohol', '89_alcohol', '90_alcohol', '91_alcohol', '92_alcohol', '93_alcohol', '94_alcohol', '95_alcohol', '96_alcohol', '97_milk', '98_milk', '99_milk', '100_milk', '101_milk', '102_milk', '103_milk', '104_milk', '105_milk', '106_milk', '107_milk', '108_canned_food', '109_canned_food', '110_canned_food', '111_canned_food', '112_canned_food', '113_canned_food', '114_canned_food', '115_canned_food', '116_canned_food', '117_canned_food', '118_canned_food', '119_canned_food', '120_canned_food', '121_canned_food', '122_chocolate', '123_chocolate', '124_chocolate', '125_chocolate', '126_chocolate', '127_chocolate', '128_chocolate', '129_chocolate', '130_chocolate', '131_chocolate', '132_chocolate', '133_chocolate', '134_gum', '135_gum', '136_gum', '137_gum', '138_gum', '139_gum', '140_gum', '141_gum', '142_candy', '143_candy', '144_candy', '145_candy', '146_candy', '147_candy', '148_candy', '149_candy', '150_candy', '151_candy', '152_seasoner', '153_seasoner', '154_seasoner', '155_seasoner', '156_seasoner', '157_seasoner', '158_seasoner', '159_seasoner', '160_seasoner', '161_seasoner', '162_seasoner', '163_seasoner', '164_personal_hygiene', '165_personal_hygiene', '166_personal_hygiene', '167_personal_hygiene', '168_personal_hygiene', '169_personal_hygiene', '170_personal_hygiene', '171_personal_hygiene', '172_personal_hygiene', '173_personal_hygiene', '174_tissue', '175_tissue', '176_tissue', '177_tissue', '178_tissue', '179_tissue', '180_tissue', '181_tissue', '182_tissue', '183_tissue', '184_tissue', '185_tissue', '186_tissue', '187_tissue', '188_tissue', '189_tissue', '190_tissue', '191_tissue', '192_tissue', '193_tissue', '194_stationery', '195_stationery', '196_stationery', '197_stationery', '198_stationery', '199_stationery', '200_stationery']
# class names
2. 指定训练数据集的图片的文件
train: /home/wzh/data/hat/trainval.txt
val: /home/wzh/data/hat/valid.txt
nc: 2
names: ['hat','person']
此文件中描述了数据集图片的位置。我这里是把标签直接放在image同目录下,也可以像上述方法一样同级目录下labels文件夹中的同名标签。
3. 指定训练数据集的图片的文件夹集合
与方法1类似,只是指定的是多个文件夹。
3. epochs ✰✰✰
epochs
: 训练的轮数。这个参数确定了模型将会被训练多少次,每一轮都遍历整个训练数据集。训练的轮数越多,模型对数据的学习就越充分,但也增加了训练时间。
选取策略
默认是100轮数。但一般对于新数据集,我们还不知道这个数据集学习的难易程度,可以加大轮数,例如300
,来找到更佳性能。
4. patience
patience
: 早停的等待轮数。在训练过程中,如果在一定的轮数内没有观察到模型性能的明显提升,就会停止训练。这个参数确定了等待的轮数,如果超过该轮数仍没有改进,则停止训练。
早停
早停能减少过拟合。过拟合(overfitting)指的是只能拟合训练数据, 但不能很好地拟合不包含在训练数据中的其他数据的状态。
5. batch ✰✰✰✰✰
batch
: 每个批次中的图像数量。在训练过程中,数据被分成多个批次进行处理,每个批次包含一定数量的图像。这个参数确定了每个批次中包含的图像数量。特殊的是,如果设置为**-1**,则会自动调整批次大小,至你的显卡能容纳的最多图像数量。
选取策略
一般认为batch越大越好。因为我们的batch越大我们选择的这个batch中的图片更有可能代表整个数据集的分布,从而帮助模型学习。但batch越大占用的显卡显存空间越多,所以还是有上限的。
6. imgsz ✰✰✰✰✰
imgsz
: 输入图像的尺寸。这个参数确定了输入图像的大小。可以指定一个整数值表示图像的边长,也可以指定宽度和高度的组合。例如640
表示图像的宽度和高度均为640像素。
选取策略
如果数据集中存在大量小对象,增大输入图像的尺寸imgsz可以使得这些小对象从高分辨率中受益,更好的被检测出。从官网放出的性能表也可以看出。
7. save、save_period ✰✰✰
-
save
: 是否保存训练的检查点和预测结果。当训练过程中保存检查点时,模型的权重和训练状态会被保存下来,以便在需要时进行恢复或继续训练。预测结果也可以被保存下来以供后续分析和评估。 -
save_period
: 保存检查点的间隔。这个参数确定了保存检查点的频率,例如设置为10表示每隔10个训练轮数保存一次检查点。如果设置为负数(如-1),则禁用保存检查点功能。
和resume配合
和resume配合可以在训练不稳定中断后再进行接着训练。例如大家白嫖Colab这个平台训练网络时,一般是有时间限制,会出现时间到了我们还没训练完的情况。通过save然后再resume重新启动可以进行接着训练。
8. cache
cache
: 数据加载时是否使用缓存。这个参数控制是否将数据加载到缓存中,以加快训练过程中的数据读取速度。可以选择在 RAM 内存中缓存数据(True/ram)、在磁盘上缓存数据(disk)或不使用缓存(False)。
9. device ✰✰✰✰✰
device
: 训练运行的设备。该参数指定了模型训练所使用的设备,例如使用 GPU 运行可以指定为 cuda device=0
,或者使用多个 GPU 运行可以指定为 device=0,1,2,3
,如果没有可用的 GPU,可以指定为 device=cpu
使用 CPU 进行训练。
注意别选择错了。
10. workers ✰✰✰
workers
: 数据加载时的工作线程数。在数据加载过程中,可以使用多个线程并行地加载数据,以提高数据读取速度。这个参数确定了加载数据时使用的线程数,具体的最佳值取决于硬件和数据集的大小。
windows系统注意设置为0
windows系统下需设置为0,否则会报错
RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase。这是因为在linux系统中可以使用多个子进程加载数据,而在windows系统中不能。
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "D:\anaconda\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "D:\anaconda\lib\multiprocessing\spawn.py", line 125, in _main
prepare(preparation_data)
File "D:\anaconda\lib\multiprocessing\spawn.py", line 236, in prepare
_fixup_main_from_path(data['init_main_from_path'])
File "D:\anaconda\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
main_content = runpy.run_path(main_path,
File "D:\anaconda\lib\runpy.py", line 288, in run_path
return _run_module_code(code, init_globals, run_name,
File "D:\anaconda\lib\runpy.py", line 97, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "D:\anaconda\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "D:\code\pycharm\yolov8\mytrain.py", line 8, in <module>
model.train(data="shop200.yaml")
File "D:\anaconda\lib\site-packages\ultralytics\yolo\engine\model.py", line 370, in train
self.trainer.train()
File "D:\anaconda\lib\site-packages\ultralytics\yolo\engine\trainer.py", line 191, in train
self._do_train(world_size)
File "D:\anaconda\lib\site-packages\ultralytics\yolo\engine\trainer.py", line 268, in _do_train
self._setup_train(world_size)
File "D:\anaconda\lib\site-packages\ultralytics\yolo\engine\trainer.py", line 250, in _setup_train
self.train_loader = self.get_dataloader(self.trainset, batch_size=batch_size, rank=RANK, mode='train')
File "D:\anaconda\lib\site-packages\ultralytics\yolo\v8\detect\train.py", line 65, in get_dataloader
return build_dataloader(dataset, batch_size, workers, shuffle, rank) # return dataloader
File "D:\anaconda\lib\site-packages\ultralytics\yolo\data\build.py", line 100, in build_dataloader
return InfiniteDataLoader(dataset=dataset,
File "D:\anaconda\lib\site-packages\ultralytics\yolo\data\build.py", line 29, in __init__
self.iterator = super().__iter__()
File "D:\anaconda\lib\site-packages\torch\utils\data\dataloader.py", line 359, in __iter__
return self._get_iterator()
File "D:\anaconda\lib\site-packages\torch\utils\data\dataloader.py", line 305, in _get_iterator
return _MultiProcessingDataLoaderIter(self)
File "D:\anaconda\lib\site-packages\torch\utils\data\dataloader.py", line 918, in __init__
w.start()
File "D:\anaconda\lib\multiprocessing\process.py", line 121, in start
self._popen = self._Popen(self)
File "D:\anaconda\lib\multiprocessing\context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "D:\anaconda\lib\multiprocessing\context.py", line 327, in _Popen
return Popen(process_obj)
File "D:\anaconda\lib\multiprocessing\popen_spawn_win32.py", line 45, in __init__
prep_data = spawn.get_preparation_data(process_obj._name)
File "D:\anaconda\lib\multiprocessing\spawn.py", line 154, in get_preparation_data
_check_not_importing_main()
File "D:\anaconda\lib\multiprocessing\spawn.py", line 134, in _check_not_importing_main
raise RuntimeError('''
RuntimeError:
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.
This probably means that you are not using fork to start your
child processes and you have forgotten to use the proper idiom
in the main module:
if __name__ == '__main__':
freeze_support()
...
The "freeze_support()" line can be omitted if the program
is not going to be frozen to produce an executable.
11. project
project
: 项目名称。这个参数用于标识当前训练任务所属的项目,方便管理和组织多个训练任务。
12. name
name
: 实验名称。该参数为当前训练任务指定一个名称,以便于标识和区分不同的实验。
13. exist_ok
exist_ok
: 是否覆盖现有的实验。如果设置为 True,当实验名称已经存在时,将会覆盖现有实验。默认为 False。
14. pretrained
pretrained
: 是否使用预训练模型。如果设置为 True,将加载预训练的模型权重进行训练,这有助于加快训练过程和提高模型性能。
15. optimizer
optimizer
: 选择要使用的优化器。优化器是深度学习中用于调整模型参数以最小化损失函数的算法。可以选择不同的优化器,如 ‘SGD’、‘Adam’、‘AdamW’、‘RMSProp’,根据任务需求选择适合的优化器。
16. verbose
verbose
: 是否打印详细输出。如果设置为 True,训练过程中会输出更详细的信息和日志。如果设置为 False,只会输出关键信息和结果。
17. seed
seed
: 随机种子,用于实现可重复性。通过设置相同的随机种子,可以使得每次运行时的随机过程保持一致,以便于结果的复现。
18. deterministic
deterministic
: 是否启用确定性模式。启用确定性模式后,保证在相同的输入下,每次运行的结果是确定的,不会受到随机性的影响。
19. single_cls
single_cls
: 将多类数据训练为单类。如果设置为 True,将会将多类数据视为单一类别进行训练。
20. rect
rect
: 使用矩形训练,每个批次进行最小填充。设置为 True 后,训练过程中使用矩形形状的图像批次,并进行最小化填充。
21. cos_lr
cos_lr
: 使用余弦学习率调度器。如果设置为 True,将使用余弦函数调整学习率的变化情况。
22. close_mosaic
close_mosaic
: 禁用mosaic增强的最后第几个轮次。可以指定一个整数值,表示在训练的最后第几个轮次中禁用mosaic增强。
mosaic是什么
Mosaic数据增强方法是YOLOV4论文中提出来的,主要思想是将四张图片进行随机裁剪,再拼接到一张图上作为训练数据。这样做的好处是丰富了图片的背景,并且四张图片拼接在一起变相地提高了batch_size,在进行batch normalization的时候也会计算四张图片,所以对本身batch_size不是很依赖,单块GPU就可以训练YOLOV4。
YOLOV4论文YOLOv4: Optimal Speed and Accuracy of Object Detection 链接https://arxiv.org/pdf/2004.10934.pdf
23. resume
resume
: 从最后一个检查点恢复训练。如果设置为 True,将从最后一个检查点的状态继续训练。
24. amp
amp
: 是否使用自动混合精度(Automatic Mixed Precision,AMP)训练。AMP 是一种深度学习训练技术,利用半精度浮点数加速训练过程,可以减少显存占用。
25. lr0
lr0
: 初始学习率。学习率是控制模型参数更新步幅的超参数,初始学习率确定了训练开始时的参数更新速度。
26. lrf
lrf
: 最终学习率。最终学习率是通过初始学习率乘以一个比例系数得到的,用于控制训练过程中学习率的衰减。
注意lrf其实是系数,最终学习率相较于初始学习率的系数。
27. momentum
momentum
: SGD 优化器的动量/Adam 优化器的 beta1。动量是一种加速梯度下降过程的技术,用于增加参数更新的稳定性。
28. weight_decay
weight_decay
: 优化器的权重衰减(weight decay)。权重衰减是一种正则化技术,用于减小模型复杂度,防止过拟合。
29. warmup_epochs
warmup_epochs
: 热身阶段的轮数。热身阶段是训练过程中初始阶段的一部分,在此阶段内,学习率和动量等参数逐渐增加,以帮助模型更好地适应训练数据。
30. warmup_momentum
warmup_momentum
: 热身阶段的初始动量。在热身阶段开始时,动量的初始值。
31. warmup_bias_lr
warmup_bias_lr
: 热身阶段的初始偏置学习率。在热身阶段开始时,偏置学习率的初始值。
32. box、cls
box
: 边界框损失权重。用于调整边界框损失的权重,以控制其在总损失中的贡献程度。cls
: 类别损失权重。用于调整类别损失的权重,以控制其在总损失中的贡献程度(按像素进行缩放)。
调整策略
如果你想更强调一些分类也就是更精准的类别判断你可以增加cls
的值;如果你想更强调一些边界框的定位你可以增加box
的值。
这个两个权重我认为也可以根据你目前训练输出的边界框损失数值和分类损失数值来判断。
33. dfl
dfl
: DFL(Distribution Focal Loss)损失权重。用于调整 DFL 损失的权重,以控制其在总损失中的贡献程度。
34. pose
pose
: 姿态损失权重(仅姿态)。用于调整姿态损失的权重,以控制其在总损失中的贡献程度(仅应用于姿态相关任务)。
35. kobj
kobj
: 关键点目标损失权重(仅姿态)。用于调整关键点目标损失的权重,以控制其在总损失中的贡献程度(仅应用于姿态相关任务)。
36. label_smoothing
label_smoothing
: 标签平滑(label smoothing)。标签平滑是一种正则化技术,用于减少模型对训练数据的过拟合程度。
标签平滑
label smoothing就是把原来的one-hot表示的标签,在每一维上都添加了一个随机噪音。
具体可以参考这篇文章标签平滑Label Smoothing
37. nbs
nbs
: 标准批次大小(nominal batch size)。指定训练过程中每个批次的大小。
38. overlap_mask
overlap_mask
: 训练时是否要求蒙版重叠(仅用于分割训练)。如果设置为 True,要求训练过程中的蒙版(mask)重叠。
39. mask_ratio
mask_ratio
: 蒙版下采样比例(仅用于分割训练)。用于控制蒙版下采样的比例。
40. dropout
dropout
: 是否使用丢弃正则化(dropout regularization)(仅用于分类训练)。如果设置为非零值,则在训练过程中使用丢弃正则化来减少模型的过拟合。
41. val
val
: 是否在训练过程中进行验证/测试。如果设置为 True,将在训练过程中进行验证或测试,以评估模型的性能。
更多推荐
所有评论(0)