报错代码:
在使用yolov5训练数据集时,运行train.py时给出了一些报错位置,并且出现以下报错:
AttributeError: module ‘numpy‘ has no attribute ‘int‘.
问题分析:
搜了这个报错代码,查了一些资料,说是numpy在1.20.0版本之后,就不支持ny.int了,而是直接用int。以下是numpy官网1.20.0版本中写的。我截图这部分的大概意思就是:之前在很长一段时间,用的都是别名ny.int代替int,这让新使用的人感到困惑。现在这些别名都被弃用了,并给出了弃用名和新名的列表。
解决过程:
我看的博客里面都给出了两种解决方法,一是把代码中出现的py.int全部改为int,二是换低版本的numpy。
我开始觉得改代码不知道都在哪里出现了py.int,觉得工作量不确定,并且不知道怎么算改好了,所以选择了换版本,结果换完版本发现低版本的numpy和其他包有不兼容了。这是选方法二很容易出现的一个问题。
最后又把版本换回来,选择改代码。其实代码也好改,因为报错的地方有定位,只需要找到报错的位置,然后改就行了。至于怎么判断是否全都改为,直接运行,直到不报这个错误为止。
结语:
解决完这个问题有出现了一些小问题,也一并改了,最后终于跑通了train.py,记录一下第一次跑通yolov5。