数据处理
- 数据收集:原始列表和标签
- 数据划分:训练集,验证集,测试集
- 数据读取:DataLoader
- Samper(生成索引,也就是序号)→Index
- DataSet(根据索引来读取标签)→Img,Label
- 数据预处理:transforms/中心化/标准化/归一化等
数据集的一般类型:
CSV文件是指逗号分隔值文件格式,分别有expression和annotation两个数据文件中,expression文件中每一列为一个样本,每一行为一个基因标签;annotation文件中每一行是一个样本,标签只有两个值.CSV格式的expression文件是生物信息学研究中用于存储和分析基因表达数据的重要工具。这些文件的结构相对简单,但它们包含的信息对于理解基因如何在不同条件下调控生物过程至关重要
OVC格式的数据集:一张图片对应一个xml文件,xml是一种可扩展标记语言,里面记录了图片中的详细信息,其中最重要的是object标签记录的内容,记录了划分标签的重点,比如dog或者person. 数据集中分别游annotation文件夹和imageset文件夹
*文件夹操作:
1.os.walk()
是 Python 中用于遍历文件夹及其子文件夹的一个非常方便的函数。它返回一个生成器,允许你递归地遍历目录结构,并获取每个目录中的文件和子目录的信息。
import os
dir = 'your dir'
for root,dir,_ in os.walk(dir): # 对于os.walk的for循环命名的参数变量分别是:根目录,子目录(列表),文件(列表)
for files in _: # 对文件的操作
...
for dirs in dir: # 对子目录的操作
...
2.os.listdir()
是 Python 标准库中的一个函数,用于返回指定目录中的文件和子目录的列表。这个函数不会递归地遍历子目录,它只会返回指定目录下的直接子目录和文件的名称列表,不包含完整的路径信息。
3.快速筛选出你需要的文件名或元素
filted = list(filter(lambda x:x.endwith('jpg'),your_dir))
"""
filter()函数接受两个参数:一个函数和一个可迭代对象(在这里是img_names列表)。
lambda x: x.endswith('.jpg')是一个匿名函数,它接受一个参数x,并返回True或False,表示x是否以'.jpg'结尾.
filter()函数会遍历 img_names列表中的每个元素,并将每个元素传递给lambda函数.只有 lambda 函数返回True的元素会被保留在结果中.
最后,list() 函数将filter()函数的结果转换为一个列表,即只包含以 '.jpg' 结尾的元素的新列表。
"""
4.append
list.append((your data))
"""
.append() 方法可以用于向列表(list)中添加各种数据类型的元素,包括数字、字符串、列表、元组、字典等等。没有特定的数据类型限制。
"""
DataLoader和Dataset
Dataloader是pytorch数据读取的核心
DataLoader:
DataLoader(dataset, # Dataset类,决定数据从哪读取以及如何读取
batch_size=1, # 批大小(每次进行一个循环都是从dataset里获取一个batchsize的数据)
shu