报错详情
RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation
File "D:\GraduationProject\Py_Code2.0\yolov5-master\models\yolo.py", line 150, in _initialize_biases
b[:, 4] += math.log(8 / (640 / s) ** 2) # obj (8 objects per 640 image)
RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation.
报错原因
这个错误是由于在执行in-place操作时,使用了一个需要梯度的叶节点变量视图(view)。在PyTorch中,如果一个变量需要梯度,那么它的视图也会继承这个属性。而in-place操作是对变量进行原地操作,即直接修改变量的值,这样会导致梯度信息的丢失或不一致。
解决方法
最简单粗暴的方法是找到models文件夹下的yolo.py文件,在第149下面添加with torch.no_grad(): 如下图: