L'utilisation de Windows pour la formation YOLO8 signale une erreur ForkingPickler(file, protocol).dump(obj) BrokenPipeError : [Errno 32] BrokenPipe

L'utilisation de Windows pour la formation personnalisée aux données de YOLO8 signale une erreur ForkingPickler(file, protocol).dump(obj)BrokenPipeError : [Errno 32] Broken pipe

1. Le problème se produit comme suit :

2. La cause de l'erreur :

Le problème est dû au problème de multi-threading sous windows, qui est lié à la classe DataLoader. Remplacez le nombre de num_workers par 0. J'ai l'impression que c'est un bug de Windows.

3. Solutions :

En général, remplacez simplement num_workers=1 dans train.py par 0, comme suit :

trainset = torchvision.datasets.CIFAR10(root='./data',train=True,
                                          download=True,transform=transform)
trainloader = torch.utils.data.DataLoader(trainset,batch_size=4,
                                            shuffle = True,num_workers=1) #改为0

Mais j'ai cherché longtemps et je n'ai pas trouvé les num_workers de train.py de yolo8, et j'ai finalement trouvé que les num_workers renvoyés par la fonction build_dataloader dans build.py peuvent être modifiés, comme suit :

def build_dataloader(cfg, batch, img_path, stride=32, rect=False, names=None, rank=-1, mode='train'):...

L'emplacement spécifique du fichier est :

你安装的虚拟环境\Lib\site-packages\ultralytics\yolo\data\build.py

Le pro-test est efficace !

Je suppose que tu aimes

Origine blog.csdn.net/Jin1Yang/article/details/129236974
conseillé
Classement