2023年Bug积累,之前一直都是一个Bug写一篇博文,但是今年评选博客之星的时候发现,进top100的时候把我淘汰了,我分析了一下原因,是有的文章质量分很低,拉低了高质量文章的占比,所以很吃亏,为了避免这种情况的发生,将以此篇博客,记录2023年调试代码遇到的Bug。
索引:
一. UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xad in position 9: illegal multibyte sequence
二. WARNING:Ignore distutils configs in setup.cfg due to encoding errors
三. TypeError: can’t convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
四. unexpected pos vs
五. legacy_load magic_number = pickle_module.load(f, pickle_load_args) _pickle.UnpicklingError: STACK_GLOBAL requires str
六.STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
七.Pycharm中Terminal(终端)不显示虚拟环境名
八.Figures now render in the Plots pane by default. To make them also appear inline in the Console, uncheck “Mute Inline Plotting” under the Plots pane options menu.
九. if scl.shape != avg.shape: AttributeError: ‘float’ object has no attribute ‘shape’
十.ValueError: max_features must be in (0, n_features]
——————————————————–分割线——————————————————-
一. UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xad in position 9: illegal multibyte sequence
今天准备使用yolov5-7.0做一个特定目标检测的项目,将之前调试的yolov5代码直接拿过来用,包括数据集划分的脚本代码,但是在使用脚本划分数据集的时候,出现了报错,这是我始料未及的,之前用这个脚本在windows和Ubuntu系统上都未出现过这个问题,十分的疑惑,于是就开始某度,当然也是顺利解决了这个Bug,今天把这个Bug总结一下,希望可以帮到更多的人,快速定位错误,快速解决Bug。
1.报错信息
运行一个python脚本,出现的主要报错信息如下:
我执行的python脚本主要功能是实现文本的读写,报错信息提示UnicodeDecodeError,不合法序列。
从网上找了一些资料,解释如下:
Python 的 open 方法默认编码取决于平台,如果是 Windows 平台,默认编码是 gbk,如果文件是 utf-8 编码,就会报这个错误。
2.解决方案
在open()中增加encoding=’utf-8’即可解决这个Bug,也就是说:
将找到脚本open()处的代码:
修改为:
3.问题分析
之前这个脚本在Ubuntu和windows系统上处理读写数据都没有出现过报错信息,这也是我第一次遇到,通过在open()中添加了encoding=’utf-8’这个报错信息确实解决了,应该和本次读写的数据有关,特此记录,这个经验可以分享给大家,如果有遇到类似的Bug,希望可以帮助到大家。
参考资料
1.https://blog.csdn.net/ProgramNovice/article/details/
2.https://blog.csdn.net/zhanshen112/article/details/
——————————————————–分割线——————————————————-
二. WARNING:Ignore distutils configs in setup.cfg due to encoding errors
1.介绍
前几天一个粉丝让我给他的“新电脑”配置python环境,并调试yolov5代码,我安装完anaconda,创建了虚拟环境,并安装了一系列依赖库,下载了pycharm编辑器,打开了基于yolov5的项目,在运行detect.py的时候,出现了一个报错信息,这也是我第一次遇到这个报错信息,特此记录。
2.Bug
Bug信息如下:
从Bug的提示信息来看,提示我们“编码错误”,那如何解决这个问题呢?下面给出了解决方案。
3.解决方案
以windows 10系统为例,打开【开始】→ 设置 → 管理语言设置 → 更改系统区域设置 → 勾选Beta版
【PS:如果还是不行,请将编译器Pycharm/vscode里面的编码方式也改为utf-8】
好了,今天就聊到这里,感谢支持,祝好。
参考资料
1.https://zhuanlan.zhihu.com/p/
——————————————————–分割线 2023.2.1———————————————–
三.TypeError: can’t convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
1.介绍
今天在调试https://github.com/WongKinYiu/PyTorch_YOLOv4代码,对模型进行训练,当模型训练结束后,出现了这个bug,网上资料显示,是版本的问题,yolov5也出现过这个问题,特此记录。
2.Bug
bug信息如下:
TypeError: can’t convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
3.解决方案
找到output_to_target(),增加o = o.cpu().numpy()
参考资料
https://blog.csdn.net/_/article/details/
——————————————————–分割线 2023.3.14——————————————————-
四. unexpected pos vs
1.介绍
图像分类代码在U盘中,使用pycharm打开进行训练,训练时不保存最优模型,没有报错,当对最优模型进行保存时,出现报错。
2.Bug
详细bug如下:
Traceback (most recent call last):
File “D:anaconda3envsyolov7libsite-packages orchserialization.py”, line 379, in save
_save(obj, opened_zipfile, pickle_module, pickle_protocol)
File “D:anaconda3envsyolov7libsite-packages orchserialization.py”, line 604, in _save
zip_file.write_record(name, storage.data_ptr(), num_bytes)
OSError: [Errno 22] Invalid argument
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “G:/code_blog/ZFNet/train.py”, line 200, in
main()
File “G:/code_blog/ZFNet/train.py”, line 156, in main
torch.save(net.state_dict(), save_path)
File “D:anaconda3envsyolov7libsite-packages orchserialization.py”, line 380, in save
return
File “D:anaconda3envsyolov7libsite-packages orchserialization.py”, line 259, in exit
self.file_like.write_end_of_file()
RuntimeError: [enforce fail at C:actions-runner_workpytorchpytorchbuilderwindowspytorchcaffe2serializeinline_container.cc:319] . unexpected pos vs
3.解决方案
没有内存空间了,将内存扩大。
参考资料
https://www.cnblogs.com/odesey/p/16665353.html
——————————————————–分割线 2023.3.31——————————————————-
五. legacy_load magic_number = pickle_module.load(f, pickle_load_args) _pickle.UnpicklingError: STACK_GLOBAL requires str
1.介绍
昨天做了一个yolov5的安全帽佩戴检测,今天想基于同一个数据集用yolov7再做一下,将yolov5项目下的数据集直接拷贝到yolov7项目下,修改了数据配置和模型配置,执行训练命令报错。
2.BUG
Bug信息如下:
3.解决方案
删掉这2个cache
参考资料
https://blog.csdn.net/limengshi/article/details/
——————————————————–分割线 2023.4.23——————————————————-
六.STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
1.介绍
今天使用LogisticRegression训练模型时出现下面的bug,算是一个小警告吧
2.bug
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
3.解决方案
意思是达到限制的迭代总数,只需要增加迭代次数(最大值)或缩放数据就可以。
将代码改为(增加迭代次数):
将max_iter改个合适数值就可以了
参考资料
https://blog.csdn.net/weixin_/article/details/
——————————————————–分割线 2023.5.5——————————————————-
七.Pycharm中Terminal(终端)不显示虚拟环境名
1.介绍
使用Pycharm打开项目后,为项目配置了虚拟环境,但是Terminal(终端)不显示虚拟环境名
2.解决方案
打开Pycharm的设置“File”->“setting”->“Tools”->“Terminal”,看下Shell path文本框中,运行文件路径是否为:C:WindowsSystem32cmd.exe。
如果不是则修改为:C:WindowsSystem32cmd.exe ,“OK”即可,如下图所示。
完成以上步骤后,重启Pycharm并打开Terminal终端,就可以看到自己的虚拟环境名了。
参考资料
https://blog.csdn.net/lizaijinsheng/article/details/
——————————————————–分割线 2023.6.28——————————————————-
八.Figures now render in the Plots pane by default. To make them also appear inline in the Console, uncheck “Mute Inline Plotting” under the Plots pane options menu.
1.介绍
spyder绘图时,输出端不显示图片,出现Figures now render in the Plots pane by default. To make them also appear inline in the Console, uncheck “Mute Inline Plotting” under the Plots pane options menu.警告信息
2.解决方案
打开tools→preferences→ipython console→graphics backend→automatic,设置完成然后重启Spyder(当然我没有重启也可以)
3.参考资料
https://blog.csdn.net/adminkeys/article/details/
——————————————————–分割线 ——2023.7.14————————————————-
九. if scl.shape != avg.shape: AttributeError: ‘float’ object has no attribute ‘shape’
1.报错信息
if scl.shape != avg.shape:
AttributeError: ‘float’ object has no attribute ‘shape’
2.解决方案
在一个DataFrame中,使用df.corr()计算每一列之间的协方差。
df中数据类型是objec,因此出现报错,转成float类型即可
df = df.astype(‘float64’)
3.参考资料
https://blog.csdn.net/weixin_/article/details/
——————————————————–分割线 ——2023.10.27————————————————-
十.ValueError: max_features must be in (0, n_features]
1.报错信息
File “D:Anacondaenvsdatalibconcurrentfutures_base.py”, line 391, in __get_result
raise self._exception
ValueError: max_features must be in (0, n_features]
2.解决方案
超参数范围超过特征最大数量,将超参数寻优范围改小即可
PyCharm激活2023.2.4
3.参考资料
https://blog.csdn.netPyCharm激活2023.2.4/_/article/details/
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/135377.html