рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн ultralytics/utils/torch_utils.py
рдиреЛрдЯ
рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ https://github.com/ultralytics/ultralytics/рдмреВрдБрдж/рдореБрдЦреНрдп/ultralytics/utils/torch_utils.pyред рдпрджрд┐ рдЖрдк рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╛ рдпреЛрдЧрджрд╛рди рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ ЁЯЫая╕Пред ЁЯЩП рдзрдиреНрдпрд╡рд╛рдж !
ultralytics.utils.torch_utils.ModelEMA
https://github.com/rwightman/ рд╕реЗ рдЕрдкрдбреЗрдЯреЗрдб рдПрдХреНрд╕рдкреЛрдиреЗрдВрд╢рд┐рдпрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (EMA)pytorch-рдЫрд╡рд┐-рдореЙрдбрд▓ рдореЙрдбрд▓ state_dict (рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдмрдлрд╝рд░реНрд╕) рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рд░рдЦрддрд╛ рд╣реИ рдИрдПрдордП рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП https://www рджреЗрдЦреЗрдВредtensorflow.org/api_docs/python/tf/train/рдШрд╛рддрд╛рдВрдХрдЧрддрд┐рдФрд╕рдд EMA рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВ enabled
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ False
.
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
рдИрдПрдордП рдмрдирд╛рдПрдВред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
update(model)
рдИрдПрдордП рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
рд╣рдЯрд╛рдП рдЧрдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╣рдЯрд╛рдП рдЧрдП рдореЙрдбрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЫреАрди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдореЙрдбрд▓ рдмрдЪрд╛рддрд╛ рд╣реИред
ultralytics.utils.torch_utils.EarlyStopping
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЛрдХ рд╡рд░реНрдЧ рдЬреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдпреБрдЧ рдмрд┐рдирд╛ рд╕реБрдзрд╛рд░ рдХреЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмрдВрдж рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдкреИрд░рд╛рдореАрдЯрд░:
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо | рдЪреВрдХ |
---|---|---|---|
epoch |
int
|
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╛ рд╡рд░реНрддрдорд╛рди рдпреБрдЧ |
рдЖрд╡рд╢реНрдпрдХ |
fitness |
float
|
рд╡рд░реНрддрдорд╛рди рдпреБрдЧ рдХрд╛ рдлрд┐рдЯрдиреЗрд╕ рдореВрд▓реНрдп |
рдЖрд╡рд╢реНрдпрдХ |
рджреЗрддрд╛:
рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|
bool
|
рд╕рдЪ рд╣реИ рдЕрдЧрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЧрд▓рдд рдЕрдиреНрдпрдерд╛ |
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
__init__(patience=50)
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЛрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВред
рдкреИрд░рд╛рдореАрдЯрд░:
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо | рдЪреВрдХ |
---|---|---|---|
patience |
int
|
рд░реБрдХрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рдЯрдиреЗрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреБрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред |
50
|
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдХреЛрд░реЗрдЯрд░ рдкреНрд░рддреНрдпреЗрдХ local_master рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
рд▓рд╛рдЧреВ torch.inference_mode () рдбреЗрдХреЛрд░реЗрдЯрд░ рдЕрдЧрд░ torch>=1.9.0 рдФрд░ torch.no_grad () рдбреЗрдХреЛрд░реЗрдЯрд░ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
рд╕рд┐рд╕реНрдЯрдо CPU рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдВ, рдпрд╛рдиреА 'Apple M2'ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
рдЙрдкрдпреБрдХреНрдд рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ PyTorch рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдХрд░рдгред
рдлрд╝рдВрдХреНрд╢рди рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрддрд╛ рд╣реИ рдпрд╛ torch.device рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдПрдХ torch.device рдСрдмреНрдЬреЗрдХреНрдЯ рдЪрдпрдирд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рднреА рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдЕрдкрд╡рд╛рдж рдпрджрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред
рдкреИрд░рд╛рдореАрдЯрд░:
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо | рдЪреВрдХ |
---|---|---|---|
device |
str | device
|
рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ torch.device рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╡рд┐рдХрд▓реНрдк 'рдХреЛрдИ рдирд╣реАрдВ', 'рд╕реАрдкреАрдпреВ', рдпрд╛ 'рдХреНрдпреВрдбрд╛', рдпрд╛ '0' рдпрд╛ '0,1,2,3' рд╣реИрдВред рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рдЬреЛ рд╕реНрд╡рддрдГ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдкрд╣рд▓рд╛ рдЙрдкрд▓рдмреНрдз GPU, рдпрд╛ CPU рдпрджрд┐ рдХреЛрдИ GPU рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред |
''
|
batch |
int
|
рдЖрдкрдХреЗ рдореЙрдбрд▓ рдореЗрдВ рдмреИрдЪ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред 0 рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯред |
0
|
newline |
bool
|
рдпрджрд┐ рд╕рддреНрдп рд╣реИ, рддреЛ рд▓реЙрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ. |
False
|
verbose |
bool
|
рдпрджрд┐ рд╕рд╣реА рд╣реИ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯред |
True
|
рджреЗрддрд╛:
рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|
device
|
рдЪрдпрдирд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ред |
рдЙрдард╛рддреА:
рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|
ValueError
|
рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рдпрд╛ рдпрджрд┐ рдмреИрдЪ рдЖрдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЧреБрдгрдЬ рдирд╣реАрдВ рд╣реИ рдПрдХрд╛рдзрд┐рдХ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдХрд░рдгред |
рдЙрджрд╛рд╣рд░рдг:
рдиреЛрдЯ
рдХрд┐рд╕ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'CUDA_VISIBLE_DEVICES' рдкрд░рд┐рд╡реЗрд╢ рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
|
ultralytics.utils.torch_utils.time_sync()
ultralytics.utils.torch_utils.fuse_conv_and_bn(conv, bn)
рдлреНрдпреВрдЬ Conv2d() рдФрд░ BatchNorm2d() рдкрд░рддреЗрдВ https://tehnokv.com/posts/fusing-batchnorm-and-conv/ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
рдлреНрдпреВрдЬ ConvTranspose2d() рдФрд░ BatchNorm2d() рд▓реЗрдпрд░реНрд╕ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
рдореЙрдбрд▓ рдХреА рдЬрд╛рдирдХрд╛рд░реАред
IMGSZ INT рдпрд╛ рд╕реВрдЪреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд imgsz=640 рдпрд╛ imgsz=[640, 320]ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рдПрдВ YOLO рдХреЛ рдЧрдврд╝рдирд╛ред
ultralytics.utils.torch_utils.get_num_gradients(model)
рдПрдХ рдореЗрдВ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рдПрдВ YOLO рдХреЛ рдЧрдврд╝рдирд╛ред
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
рдЙрдкрдпреЛрдЧреА рдореЙрдбрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рдПрдВред
рдЙрджрд╛рд╣рд░рдг
YOLOv8n рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
рдПрдХ рд▓реМрдЯрд╛рдПрдВ YOLO рдореЙрдбрд▓ рдХреА рдлреНрд▓реЙрдкред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
рдореЙрдбрд▓ FLOPs рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ (thop рдкреИрдХреЗрдЬ рд╡рд┐рдХрд▓реНрдк, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ 2-10x рдзреАрдорд╛)ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
рдореЙрдбрд▓ рднрд╛рд░ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рдиреЛрдВ рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
рддрд░рд╛рдЬреВ рдФрд░ рдкреИрдб рдПрдХ рдЫрд╡рд┐ tensor рджрд┐рдП рдЧрдП рдЕрдиреБрдкрд╛рдд рдФрд░ рдЧреНрд░рд┐рдб рдЖрдХрд╛рд░ рдЬреАрдПрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдХрд╛рд░ рдЖрдИрдПрдордЬреА (рдмреАрдПрд╕, 3, рд╡рд╛рдИ, рдПрдХреНрд╕) рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдореВрд▓ рдЖрдХрд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
рдирд┐рдХрдЯрддрдо x рднрд╛рдЬрдХ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬреНрдп рджреЗрддрд╛ рд╣реИред
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
рдСрдмреНрдЬреЗрдХреНрдЯ 'рдмреА' рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ 'рдП' рддрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ /
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
рджреВрд╕рд░рд╛-рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХрд╛ рд▓реМрдЯрд╛рдПрдВ ONNX opset рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд PyTorch, рдкрд░рд┐рдкрдХреНрд╡рддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рддред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
рджрд╛ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, 'рдмрд╣рд┐рд╖реНрдХреГрдд' рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдорд┐рд▓рд╛рди рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рджреЗрддрд╛ рд╣реИред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
рдпрджрд┐ рдореЙрдбрд▓ DP рдпрд╛ DDP рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ рддреЛ True рд▓реМрдЯрд╛рддрд╛ рд╣реИред
ultralytics.utils.torch_utils.de_parallel(model)
рдПрдХ рдореЙрдбрд▓ рдХреЛ рдбреА-рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░реЗрдВ: рдпрджрд┐ рдореЙрдбрд▓ рдбреАрдкреА рдпрд╛ рдбреАрдбреАрдкреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ рддреЛ рдПрдХрд▓-рдЬреАрдкреАрдпреВ рдореЙрдбрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
y1 рд╕реЗ y2 https://arxiv.org/pdf/1812.01187.pdf рддрдХ рд╕рд╛рдЗрдирд╕реЛрдЗрдбрд▓ рд░реИрдВрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рди рджреЗрддрд╛ рд╣реИред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
рд░реИрдВрдбрдо рдирдВрдмрд░ рдЬрдирд░реЗрдЯрд░ (RNG) рд╕реАрдбреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ https://pytorch.org/docs/stable/notes/randomness.html.
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП 'рдПрдл' рд╕реЗ рд╕реНрдЯреНрд░рд┐рдк рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ 'рдПрд╕' рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред
рдкреИрд░рд╛рдореАрдЯрд░:
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо | рдЪреВрдХ |
---|---|---|---|
f |
str
|
рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЛ рдкрдЯреНрдЯреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкрдеред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 'best.pt' рд╣реИред |
'best.pt'
|
s |
str
|
рд╕реНрдЯреНрд░рд┐рдкреНрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкрдеред рдпрджрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ 'f' рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред |
''
|
рджреЗрддрд╛:
рдкреНрд░рдХрд╛рд░ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|
None
|
рдХреЛрдИ рдирд╣реАрдВ |
рдЙрджрд╛рд╣рд░рдг
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ state_dict рдХреЛ FP16 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ 'state' рдХреБрдВрдЬреА рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ tensor рд░реВрдкрд╛рдВрддрд░рдгред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп 'param_groups' рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рднрдВрдбрд╛рд░рдг рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рдЧреИрд░-tensor рдбрд╛рдЯрд╛ред
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics рдЧрддрд┐, рд╕реНрдореГрддрд┐ рдФрд░ FLOPs рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ред
рдЙрджрд╛рд╣рд░рдг
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/torch_utils.py
2023-11-12 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-05-08
рд▓реЗрдЦрдХ: рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1), рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (4), рд▓рд╛рдлрд┐рдВрдЧ-рдХреНрдпреВ (1)