之前运行yolov5的时候也遇到过同样的错误,其实都是一样的,只不过yolop网上一些资料较少。
废话不都说,开始解决!
报错原因:
RuntimeError: result type Float can’t be cast to the desired output type long int
是说我这个版本的torch不支持float直接转换为long int 型数据,所以这需要我们手动转换数据类。(新版本的torch确实有这个问题,老版本没有这个问题。)
解决办法:(看图)
在lib软件包中找到 core软件包下的postprocess.py文件
找到postprocess.py文件的第30行
gain = torch.ones(7, device=targets.device)
将这个代码修改成可以转换为long int 型数据的代码
gain = torch.ones(7, device=targets.device).long()
运行train.py,成功解决!
后话:
其实本质上来说也可以通过降低torch版本来解决 ,有兴趣的小伙伴可以自己去尝试一下~