Tài liệu tham khảo cho ultralytics/utils/torch_utils.py
Ghi
Tệp này có sẵn tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/tiện ích/torch_utils.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !
ultralytics.utils.torch_utils.ModelEMA
Cập nhật Đường trung bình động hàm mũ (EMA) từ https://github.com/rwightman/pytorch-hình ảnh-mô hình Giữ trung bình động của mọi thứ trong mô hình state_dict (thông số và bộ đệm) Để biết chi tiết EMA, xem https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage Để tắt EMA, hãy đặt enabled
Thuộc tính cho False
.
Mã nguồn trong ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
Tạo EMA.
Mã nguồn trong ultralytics/utils/torch_utils.py
update(model)
Cập nhật thông số EMA.
Mã nguồn trong ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
Cập nhật các thuộc tính và lưu mô hình bị tước với trình tối ưu hóa bị xóa.
ultralytics.utils.torch_utils.EarlyStopping
Lớp dừng sớm ngừng đào tạo khi một số kỷ nguyên nhất định đã trôi qua mà không cải thiện.
Mã nguồn trong ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
Kiểm tra xem có nên ngừng đào tạo hay không.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
epoch |
int
|
Kỷ nguyên đào tạo hiện tại |
bắt buộc |
fitness |
float
|
Giá trị thể dục của kỷ nguyên hiện tại |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
bool
|
Đúng nếu đào tạo nên dừng lại, Sai nếu không |
Mã nguồn trong ultralytics/utils/torch_utils.py
__init__(patience=50)
Khởi tạo đối tượng dừng sớm.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
patience |
int
|
Số lượng kỷ nguyên để chờ đợi sau khi thể lực ngừng cải thiện trước khi dừng lại. |
50
|
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
Trang trí để làm cho tất cả các quy trình trong đào tạo phân tán chờ đợi cho mỗi local_master để làm một cái gì đó.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
Áp dụng torch.inference_mode() trang trí nếu torch>=1.9.0 khác torch.no_grad() trang trí.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
Trả về một chuỗi có thông tin CPU hệ thống, tức là 'Apple M2'.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
Chọn thích hợp PyTorch thiết bị dựa trên các đối số được cung cấp.
Hàm lấy một chuỗi chỉ định thiết bị hoặc một torchđối tượng .device và trả về a torchĐối tượng .device đại diện cho thiết bị đã chọn. Chức năng này cũng xác nhận số lượng thiết bị có sẵn và tăng một ngoại lệ nếu (các) thiết bị được yêu cầu không khả dụng.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
device |
str | device
|
Chuỗi thiết bị hoặc torchđối tượng .device. Các tùy chọn là 'Không có', 'cpu' hoặc 'cuda', hoặc '0' hoặc '0,1,2,3'. Mặc định là một chuỗi trống, tự động chọn GPU khả dụng đầu tiên hoặc CPU nếu không có GPU. |
''
|
batch |
int
|
Kích thước lô đang được sử dụng trong mô hình của bạn. Mặc định là 0. |
0
|
newline |
bool
|
Nếu True, hãy thêm một dòng mới vào cuối chuỗi nhật ký. Mặc định là False. |
False
|
verbose |
bool
|
Nếu True, ghi lại thông tin thiết bị. Mặc định là True. |
True
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
device
|
Thiết bị đã chọn. |
Tăng:
Kiểu | Sự miêu tả |
---|---|
ValueError
|
Nếu thiết bị được chỉ định không khả dụng hoặc nếu kích thước lô không phải là bội số của số lượng thiết bị khi sử dụng nhiều GPU. |
Ví dụ:
Ghi
Đặt biến môi trường 'CUDA_VISIBLE_DEVICES' để chỉ định GPU nào sẽ sử dụng.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.time_sync()
ultralytics.utils.torch_utils.fuse_conv_and_bn(conv, bn)
Hợp nhất các lớp Conv2d() và BatchNorm2d() https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
Hợp nhất các lớp ConvTranspose2d() và BatchNorm2d().
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
Thông tin mô hình.
imgsz có thể là int hoặc list, tức là imgsz = 640 hoặc imgsz = [640, 320].
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
Trả về chính tả thông tin mô hình với thông tin mô hình hữu ích.
Ví dụ
YOLOv8n Thông tin cho người ghi nhật ký
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
Trả về a YOLO FLOPs của mô hình.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
Mô hình tính toán FLOP (thay thế gói thop, nhưng không may chậm hơn 2-10 lần).
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
Khởi tạo trọng số mô hình thành các giá trị ngẫu nhiên.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
Cân và miếng đệm một hình ảnh tensor Hình dạng IMG (BS, 3, Y, X) dựa trên tỷ lệ nhất định và kích thước lưới GS, tùy chọn giữ nguyên hình dáng ban đầu.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
Sao chép các thuộc tính từ đối tượng 'b' sang đối tượng 'a', với các tùy chọn để bao gồm/loại trừ các thuộc tính nhất định.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
Trả về lần gần đây thứ hai ONNX Phiên bản opset được hỗ trợ bởi phiên bản này của PyTorch, được điều chỉnh cho đến ngày đáo hạn.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
Trả về từ điển các khóa giao nhau với các hình dạng phù hợp, không bao gồm các phím 'loại trừ', sử dụng các giá trị da.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
Khử song song một mô hình: trả về mô hình GPU đơn nếu mô hình thuộc loại DP hoặc DDP.
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
Trả về hàm lambda cho đoạn đường dốc hình sin từ y1 đến y2 https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
Khởi tạo hạt giống trình tạo số ngẫu nhiên (RNG) https://pytorch.org/docs/stable/notes/randomness.html.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
Trình tối ưu hóa dải từ 'f' để hoàn thành đào tạo, tùy chọn lưu dưới dạng 's'.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
f |
str
|
đường dẫn tệp đến mô hình để loại bỏ trình tối ưu hóa. Mặc định là 'best.pt'. |
'best.pt'
|
s |
str
|
đường dẫn tệp để lưu mô hình với Trình tối ưu hóa bị tước vào. Nếu không được cung cấp, 'f' sẽ bị ghi đè. |
''
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
None
|
Không ai |
Ví dụ
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
Chuyển đổi state_dict của một trình tối ưu hóa nhất định thành FP16, tập trung vào khóa 'trạng thái' cho tensor chuyển đổi.
Phương pháp này nhằm mục đích giảm kích thước lưu trữ mà không thay đổi 'param_groups' vì chúng không chứatensor dữ liệu.
Mã nguồn trong ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics tốc độ, bộ nhớ và FLOPs profiler.