我下载了一个为 YoloV7 准备的数据集。我还克隆了 yoloV7 Repo。
我想用这个下载的数据集训练模型,为此我使用这个命令。
python train.py --workers 8 --device 0 --batch-size 16 --data data.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --weights yolov7x.pt --name yolov7 --hyp data/hyp.scratch.p5.yaml
Run Code Online (Sandbox Code Playgroud)
我收到这个运行时错误
autoanchor: Analyzing anchors... anchors/target = 5.50, Best Possible Recall (BPR) = 1.0000
Image sizes 640 train, 640 test
Using 8 dataloader workers
Logging results to runs\train\yolov74
Starting training for 300 epochs...
Epoch gpu_mem box obj cls total labels img_size
0%| | 0/372 [00:03<?, ?it/s]
Traceback (most recent call last):
File "D:\projects\yolov7\train.py", line 618, in <module>
train(hyp, opt, device, tb_writer)
File "D:\projects\yolov7\train.py", line 363, in train
loss, loss_items = compute_loss_ota(pred, targets.to(device), imgs) # loss scaled by batch_size
File "D:\projects\yolov7\utils\loss.py", line 585, in __call__
bs, as_, gjs, gis, targets, anchors = self.build_targets(p, targets, imgs)
File "D:\projects\yolov7\utils\loss.py", line 759, in build_targets
from_which_layer = from_which_layer[fg_mask_inboxes]
RuntimeError: indices should be either on cpu or on the same device as the indexed tensor (cpu)
Run Code Online (Sandbox Code Playgroud)
我的系统包含 1xCpu、1x Cuda GPU(默认游戏电脑)
小智 28
我相信这是当前实施中的一个错误。您可以通过将utils/loss.py第 685 行更改为来修复它
from_which_layer.append((torch.ones(size=(len(b),)) * i).to('cuda'))
Run Code Online (Sandbox Code Playgroud)
并在 756 之后添加一行以安装fg_mask_inboxes到您的 cuda 设备上:
fg_mask_inboxes = fg_mask_inboxes.to(torch.device('cuda'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23726 次 |
| 最近记录: |