--------------------------------------------------------分割线 2024.3.22-------------------------------------------------------
1、load_sample_image raise AttributeError(“Cannot find sample image: %s” % image_name) AttributeError: Cannot find sample image: test.jpg
今天使用sklearn.datasets中的load_sample_image加载图片,代码如下:
flower = load_sample_image("test.jpg")
出现上面的报错!
解决方案
sklearn库使用的是库自带的内置图片,所以load_sample_image()里的内容要和已有的图片名称相同,只有china.jpg和flower.jpg
这是load_sample_image()函数的内容:
也就是说,这两句是固定死的,不能使用自定义的图片!
flower=load_sample_image('flower.jpg')
china=load_sample_image('china.jpg')
--------------------------------------------------------分割线 2024.3.26-------------------------------------------------------
2、 TypeError: Object of type float32 is not JSON serializable
在flask接口中将字典结果放入json,出现报错
解决方案
逐行debug发现有一个结果是float32,将该结果转为float64即可。res=np.float64(res)
--------------------------------------------------------分割线 2024.4.5-------------------------------------------------------
3、findfont:Font family [‘sans-serif’] not found. Falling back to DejaVu Sans.
今日使用yolov5将图表中的英文坐标改为中文,在ubuntu系统上进行模型训练,报字体错误,绘制的图表坐标也是乱码,遇到这个bug
解决方案
首先,下载需要的字体,例如仿宋或者黑体(可以从windows系统上C盘Fonts文件中拷贝)
其次,在该运行环境下,查看matplotlib的字体路径
>>>import matplotlib
>>>print(matplotlib.matplotlib_fname())
/home/xxx/.local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
>>>cd /home/xxx/.local/lib/python3.7/site-packages/matplotlib/mpl-data/
>>>ls
fonts matplotlibrc ...
>>>cd cd /home/xxx/.local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts
>>>>ls
ttf ...
>>>cd cd /home/xxx/.local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
将下载的字体复杂到/home/xxx/.local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf路径下面
最后,删除字体缓存
>>>import matplotlib
>>>matplotlib.get_cachedir()
/home/xxx/.cache/matplotlib
到这个目录下面,删除fontlist-v300.json这个即可
参考资料:
https://www.zhihu.com/question/25404709/answer/3307395821?utm_id=0
https://blog.csdn.net/Neutionwei/article/details/108311811
https://blog.csdn.net/weixin_45707277/article/details/118631442
https://blog.csdn.net/weixin_55988068/article/details/131904787
--------------------------------------------------------分割线 2024.4.15-------------------------------------------------------
4、The size of tensor a (4) must match the size of tensor b (3) at non-singletonThe size of
解决方案:
这个bug之前遇到过,还写了博文:https://blog.csdn.net/AugustMe/article/details/124336694
--------------------------------------------------------分割线 2024.4.27-------------------------------------------------------
5、assert mlc < nc, f’Label class {mlc} exceeds nc={nc} in {data}. Possible class labels are 0-{nc - 1}’
AssertionError: Label class 20 exceeds nc=20 in data\VOC.yaml. Possible class labels are 0-19
yolov5里面报错,解决方法:
这个问题从原理上来说,是你的检测框xml文件转到txt后,类别编号没有从0开始。导致类别的索引超出了范围,yolov5中默认是从0开始到x-1,x是你的检测类别。解决方法很简单,先检查你的txt标签文件中是否从0开始,若不是则使用以下代码,classes中的类别应与您检测的类别对应:
参考:
https://blog.csdn.net/qq_43725659/article/details/127867867