【LLM学习之路】9月12日 9月13日 第二三天
如何读取数据
涉及两个类 Dataset / Sataloder
Dataset
提供一种获取数据及其label的一种方式
实现下面两个功能
- 如何获取每一个数据及其label
- 告诉我们总共有多少的数据
两种数据的组织形式:txt描述 / 直接放在对应的文件夹里
from PIL import Image
可以看到图片的属性
Dataloder
可以对数据进行打包,为后面的网络提供不同的数据形式
TensorBoard的使用(好像多看了,没事多多益善)
tensorboard可以展示训练过程中的图像
torchvision中的transform
transform的结构和用法
toTenser把一个图片转化成tenser
teansform指的是py文件,像一个工具箱,在工具箱当中会有很多工具,不同的class有不同的作用,输入一个图片会得到想要的结果
transforms在py中如何使用
# transforms如何被使用
tensor_trans = transforms.ToTensor() #创建的工具
tensor_img = tensor_trans(img)
常见的transform
输入、输出、作用
call的作用
将对象的实例化变成一个方法
ToTensor的使用
#ToTensor的使用
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor",img_tensor)
writer.close()
归一化
#Normalize归一化 (输入-均值)/标准差 将数值转换为均值为0,标准差为1的分布,也就是-1到1的分布
trans_norm = transforms.Normalize([1,3,5],[3,2,1])
img_norm = trans_norm(img_tensor)
writer.add_image("Normalize",img_norm,1)
Resize的使用
# Resize
print(img.size)
trans_resize = transforms.Resize((256,512))
img_resize = trans_resize(img)
img_resize = trans_totensor(img_resize) #PIL类型 ——》 tensor类型
writer.add_image("Resize",img_resize,0)
print(img_resize)
Compose
# Compose - resize - 2
trans_resize_2 = transforms.Resize(512) #表示调整之后的图像的最小边为512
#Compose()的参数需要是一个列表,数据需要时transforms的类型
#是一个组合操作,将多个预处理步骤打包成一个列表并顺序执行 所以是先调成大小,然后再调整成张量
trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize",img_resize_2,1)
随机裁剪
# 随机裁剪RandomCrop
trans_random = transforms.RandomCrop((200,300))
trans_compose_2 = transforms.Compose([trans_random,trans_totensor])
for i in range(10):
img_crop = trans_compose_2(img)
writer.add_image("RandomCropHW",img_crop,i)
关注输入和输出类型
多看官方文档
关注方法需要什么参数
DataLoader的使用
是数据的加载器,加载到神经网络中,从dataset中去取数据,取多少怎么取
参数解释
dataset,batch_size,shuffle,batch_sampler,num_works多进程(在windows会有错误),drop_last