车辆重识别代码笔记12.17

1、argparse.ArgumentParser()用法解析

参考如下:argparse.ArgumentParser()用法解析 - 知乎 (zhihu.com)

2、CfgNode用法解析

参考如下:Python CfgNode-CSDN博客

3、 DataLoader

dataloader为数据提供一个迭代器,把数据分批输入网络的进行训练。

**工作机制:**在dataloader按照batch进行取数据的时候, 是取出大小等同于batch size的index列表,然后将列表列表中的index输入到dataset的getitem()函数中,取出该index对应的数据,最后, 对每个index对应的数据进行堆叠,就形成了一个batch的数据。

4、collate_fn函数

参考如下:python tips003 ------DataLoader的collate_fn参数使用详解 - 知乎 (zhihu.com)

5、sampler函数

sampler: 是从dataset中取数据的策略,如果DataLoader不指定sampler的话,它就会按顺序依次喂入数据。

参考如下:Pytorch中的sampler_pytorch sampler-CSDN博客

6、enumerate()函数

enumerate() 是 Python 的一个内置函数,用于在 遍历可迭代对象(如列表、元组、字符串等) 时,同时获取元素及其对应的索引(位置)。

实际操作过程

  1. 遍历可迭代对象 :enumerate() 逐个取出元素。

  2. 自动生成索引 :默认从 0 开始,每次索引值加 1(或根据 start 参数设置)。

  3. 返回索引和值 :以 (index, value) 形式返回当前索引和值。

7、使用 iter() 和 next() 的特点

  • 可以逐个获取元素:

    • iter() 将可迭代对象转换为迭代器后,可以通过 next() 获取每个元素。

    • 每调用一次 next(),迭代器会返回下一个元素,直到没有元素时抛出 StopIteration 异常。

  • 迭代器是一次性的:

    • 一旦迭代器遍历完所有元素,不能重置或重新遍历。如果你希望再次遍历,可以重新生成一个新的迭代器。

还可以通过自定义类来创建迭代器对象,只要该类实现了 __iter__() 和 __next__() 方法:

  • __iter__() 返回迭代器对象本身(通常是类的实例)。

  • __next__() 返回下一个元素,直到抛出 StopIteration 异常表示结束。

相关推荐
gCode Teacher 格码致知几秒前
Pandas教学-18:number与numeric的区别
python·pandas
梦想不只是梦与想3 小时前
Python 中subprocess 模块:执行外部命令
python·subprocess·调用外部命令
懂点Tech3 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
ACP广源盛139246256734 小时前
Type-C 扩展坞方案选型笔记:DP1.4 转 HDMI2.0 桥接方案评估@ACP
笔记·硬件架构·hdmi·国产芯片·扩展坞
小豆庄5 小时前
视频人脸打码追踪:转场丢失、漏检和ID撞号的处理
目标检测·计算机视觉·开源·音视频·视频·python3.11
工业视觉老A6 小时前
攻克牙膏朝向人工分拣痛点,AI 视觉检测保障包装工序稳定
人工智能·计算机视觉·视觉检测
ss2736 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群
数据库·笔记·postgresql
ss2736 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 21 PostgreSQL进程与内存架构介绍
数据库·笔记·postgresql
X54先生(人文科技)7 小时前
社会嵌入式终身学习机器与修复时代-ELR架构和技术演化探讨
人工智能·深度学习·学习·架构·开源协议