[Datawhale AI] 夏令营 【kaggle–CV图像】#AI夏令营
#AI夏令营 #Datawhale #夏令营
前言:看了 Task 2 九月大佬的从baseline入门深度学习,发现自己还是有很多地方不理解,于是我先去学习了一下文档的知识
1、学习一下 基础知识 —pytorch
之前是跑别人的项目然后自己调参数,一直没有深入的学习过pytorch
这次想要深入学习一下pytorch,我去看了小土堆的pytorch学习教程(but 还没看完💦)
1.1 数据加载
dataset | dataloader | |
---|---|---|
垃圾(数据) | 提供一种方式去获取数据及其label | 为后面的网络提供不同的数据形式 |
如何获取每一个数据及其label | ||
告诉我们总共有多少数据 |
1.2 tensorboard(可视化)
# 画一个y=x
from torch.utils.tensorboard import SummaryWriter
write = SummaryWriter("logs")
# write.add_image()
for i in range(100):
write.add_scalar("y = x", i, i)
write.close()
打开命令
# --logdir=logs 时间所在的文件夹
tensorboard --logdir=logs --port=6006
加载图片
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
write = SummaryWriter("logs")
img_path = "meiyu.png"
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)
write.add_image("test", img_array, 2, dataformats='HWC')
for i in range(100):
write.add_scalar("y = x", 3 * i, i)
write.close()
1.3 transforms (用于处理序列数据(如文本、时间序列等)的任务)
1.4 常见的transform
输入 | PIL | Image.open() |
---|---|---|
输出 | tensor | ToTensor() |
作用 | narrays | cv.imread() |
totensor的使用
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
write = SummaryWriter("logs")
img = Image.open("meiyu.png")
print(img)
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
write.add_image("ToTensor", img_tensor)
write.close()
Normalize 的使用(归一化)
目的:让数据在一个范围内,避免奇异样本数据的影响,比如极大的数据
# Normalize
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
write.add_image("Normalize", img_norm)
Resize 的使用
# Resize
print(img.size)
trans_resize = transforms.Resize((512, 512))
# img PIL -> resize -> img_resize PIL
img_resize = trans_resize(img)
# img_resize PIL -> toTensor -> img_resize tensor
img_resize = trans_totensor(img_resize)
write.add_image("Resize____", img_resize, 0)
print(img.size)
Compose - resize - 2(等比缩放)
Compose()用法:
① Compose()中的参数需要是一个列表
② Python中,列表的表示形式为[数据1,数据2,….]
③ 在Compose中,数据 需要是 transforms类型
④ 所以得到,Compose([transforms参数1,transforms参数2…]
…