yolov8代码解读--数据篇
类继承关系ultralytics/data/base.py 有BaseDataset类,这个类是数据集处理的基类。
包括YOLODataset、SemanticDataset都继承这个类
基类方法分析get_img_files12345678910111213141516171819202122232425262728293031323334353637383940414243def get_img_files(self, img_path): """Read image files.""" # 定义一个名为get_img_files的方法,用于读取图像文件 try: f = [] # image files # 创建一个空列表f,用于存储找到的图像文件路径 # 下面的循环处理img_path,这可以是单个路径或路径列表 for p in img_path if isinstance(img_path, list) else [img_path]: ...
600条linux命令
1来源:https://blog.csdn.net/l1028386804/article/details/117917710
今天,带来一篇 Linux 命令总结的非常全的文章,也是我们平时工作中使用率非常高的操作命令,命令有点多,建议小伙伴们可以先收藏后阅读。
1. 基本命令123456789101112131415161718192021222324uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件(SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU ...
jason2023年终总结
科研
AI今年对深度学习有了一些理解,从之前的数据层面的增删、清洗等到模型搭建,今年已经可以完成有代码模型的轻易复现以及根据自己数据做调整,主要是理解到了data_loader的作用。对于pytorch和tf都有所涉猎,至少已经都用到了,具体精细化修改还是要继续研究。
模型层面,今年学了两种主要的模型,yolo系列和vae系列的模型,初步学会了搭建与复现、修改的方法。有时间我会更新yolo系列算法的改进。比如更换backbone、neck、head等,添加n2n的注意力机制等。但是对于模型的调优方面感觉还是要继续深入的学习。
对于loss的理解更深一层,首先基于一个事实就是我们的模型主要关注最终指标,这个指标可以是简单的ACC、Recall、AUC等,也可以是专业领域的index,但是我们要做的事把loss和index之间的联系找到。跟一个协和的网友聊天、探讨问题,非cs的同学主要可能没有理解最终index的重要,感觉这是一个理解的点,另一个就是在一个例子群项目中,loss其实比较玄学,有的时候只是有那个趋势的关系就会work,所以要多多尝试。具体比如vae中的JS loss可以进行多 ...
202312bug
cuda显存超界1torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 4.07 GiB (GPU 1; 23.65 GiB total capacity; 20.39 GiB already allocated; 2.77 GiB free; 20.42 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
最一开始看不懂为什么已经分配而显卡上却没有进程在跑,后来直接认为它是一个显存超界的bug
RuntimeError: a Tensor with 6 elements cannot be converted to Scalar计算loss的时候不知道 ...
self in python code
由于对面向对象编程很长时间没有复习过,昨天写Dataloader的时候,有个方法没写好,原因是,类内方法调用的时候,需要调用有self的方法,但是我还没试下调用类外方法的事例。
1. self 关键字代表实例自身:在Python类的方法中,self 是一个指向实例本身的引用。
访问实例属性和方法:使用 self 来访问类的属性和其他方法。
在定义方法时必须:在类的实例方法定义中,self 必须作为第一个参数,代表调用该方法的对象实例。
2. 类内方法定义在类内部:这些方法定义在类的定义中。
访问方式:通过类的实例(使用 self)或者直接通过类名(对于静态方法和类方法)来访问。
可以访问类属性和方法:类内方法可以访问通过 self 的同一实例的其他方法和属性。
**自动传递 self**:当实例方法被调用时,实例本身自动作为第一个参数传递(即 self)。
3. 类外方法定义在类外部:这些是独立的函数,定义在类定义之外,通常在全局作用域中。
全局作用域:类外方法通常在其定义的模块的全局作用域中有效,如果是在不同模块,则需要导入。
4. 方法和函数的调用类内调用类外方法:类内的方法可以自 ...
python2310学习记录
1 subprocess模块subprocess是Python的一个标准库模块,它允许你从Python代码中启动新的应用程序或命令,与它们交互并获取它们的输出。这个模块提供了一个简单而一致的接口来替代旧的模块和函数,如os.system()、os.spawn*()等。
主要功能:
启动新进程:你可以使用subprocess来启动新的系统命令或应用程序。
与进程交互:你可以发送输入到进程,并从进程中读取输出。
等待进程完成:你可以等待进程完成,并获取其返回码。
主要函数和类:
**subprocess.run()**:从Python 3.5开始,这是执行子进程并等待其完成的推荐方法。
**subprocess.call()**:运行命令,等待它完成,然后返回返回码。
**subprocess.check_call()**:与call()类似,但如果命令返回非零值,则会引发异常。
**subprocess.check_output()**:运行命令并返回其输出。如果命令返回非零值,则会引发异常。
**subprocess.Popen()**:这是一个更强大的类,允许你启动并与子进程交互。 ...
prompt工程
前沿今年,ChatGPT等大型模型在各个领域展示了其广泛的应用前景,显示出了惊人的潜能。值得注意的是,prompt的设计和质量对模型输出的效果有着重要影响。回想起GPT-3.5初次亮相时,其功能尚不如现在之丰富。而今,GPT-4带来了三大亮点:首先,它可以提供更为详尽的文本回答;其次,它具备了基于爬虫技术的网页浏览功能;最后,它还新增了绘图功能,成为一款真正的多模态模型。接下来,我将为大家列举几个实用且有趣的ChatGPT prompt示例。
效率提升prompt1. Write Multithreaded Functions 14. 编写多线程函数
Prompt: I want you to act as a coder. Can you help me parallelize this code across threads in Python?提示:我希望你充当编码员。你能帮我在 Python 中的线程中跨线程并行化这段代码吗?
2. Write Documentation 28. 编写文档Credit: @svpino 信用:@svpino
Prompt: I want y ...
数据处理与可视化代码
项目介绍一个数据分析项目,所使用的代码都是普通代码,没有技术含量,chatgpt可以无痛做到,本文在此只提供和总结一下分析数据的基本思路。
代码与释义数据爬虫从互联网获取数据当然是要从爬虫开始,使用python可以很轻松的写出一个可用的爬虫。本文以某网站为例,合法爬取部分数据用于学习交流。
引入库包以及文件路径
123456789101112131415161718import requests import pprintimport csvimport timekeyword = 'eye'f = open('./data/'+keyword+'.csv', mode='a', encoding='utf-8', newline='')csv_writer = csv.DictWriter(f, fieldnames=[ '标题', '品牌', '原价', '折扣 ...
Python绘制Venn图
Python绘制Venn图pyvenn这里介绍一个使用python绘制Venn图的方法,常见的绘制Venn图有两种方法,本文介绍第二种,它提供了2-6个子集时的Venn图绘制方法。
下面是demo:
12345678910111213141516171819202122232425262728293031import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltimport vennlabels = venn.get_labels([range(10), range(5, 15)], fill=['number', 'logic'])fig, ax = venn.venn2(labels, names=['list 1', 'list 2'])fig.savefig('betterpyvenn/images/venn2.png', bbox_inches='tight' ...
deprecated and remove
经过1234AttributeError: module 'numpy' has no attribute 'int'.`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.The aliases was originally deprecated in NumPy 1.20; for ...