从0开始的AI学习
前言
学习路线参考:Future
学习路线:Python、数学基础 => Numpy、Pandas等数据分析库、PyTorch深度学习框架 => 机器学习 => 深度学习
PyTorch基础
参考:小土堆
获取数据
在深度学习中训练模型都是小批量小批量地优化训练的,即每次都会从原数据集中取出一小批量进行训练,完成一次权重更新后,再从原数据集中取下一个小批量数据,然后再训练再更新。
在PyTorch的
torch.utils.data
包中定义了两个类Dataset
和DataLoader
,这两个类就是用来批量地加载数据的。
Dataset
提供一种方式去获取数据及其label => 数据集链接
from torch.utils.data import Dataset
from PIL import Image
import os
# 使用MyData继承Dataset
class MyData(Dataset):
def __init__(self, root_dir, label_dir):
self.root_dir = root_dir # 训练数据集路径 /dataset/train
self.label_dir = label_dir # 具体文件夹名称 ants
self.path = os.path.join(self.root_dir, self.label_dir) # 拼接路径=>获得要训练的文件夹路径
self.img_path = os.listdir(self.path) # 获得要训练图片文件名=>用于获得图片名称
def __getitem__(self, idx):
img_name = self.img_path[idx] # 使用idx即index标记每个图片的名称
img_item_path = os.path.join(self.root_dir, self.label_dir, img_name) # 拼接出每个图片的路径
img = Image.open(img_item_path) # 这里的img为具体图片的属性
label = self.label_dir # 标签
return img, label
def __len__(self):
return len(self.img_path) # 返回数据集长度
root_dir = "dataset/train"
ants_label_dir = "ants"
ants_dataset = MyData(root_dir,ants_label_dir)
Dataloader
为后面的网络提供不同的数据形式
图像变换
Tensorboard
该方法常用于查看数据的变化
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs") # 创建文件夹
# y = x
for i in range(100):
"""
@param: str、scalar_value、global_step
@dep: 折线图标题、y轴、x轴
"""
writer.add_scalar("y=x",i,i) # 画出图像
writer.close()
# 使用终端运行,启动服务
> tensorboard --logdir=logs
该方法常用于查看model训练的,每个阶段的输出结果
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter("logs")
imgage_PIL="data/train/ants_image/0013035.jpg" # 图片地址
img_PIL=Image.open(imgage_PIL) # 打开图片
img_array=np.array(img_PIL) # 以numpy数组形式存储
# 写入
writer.add_image("test",img_array,1,dataformats='HWC')
writer.close()
Transforms
使用方法
from PIL import Image
from torchvision import transforms
img_path = "data/train/ants_image/0013035.jpg"
img=Image.open(img_path) # 以PIL类型打开图片
tensor_trans=transforms.ToTensor() # 创建一个转化实例
tensor_img=tensor_trans(img) # 将PIL类型转化为tensor类型
print(tensor_img)
本文链接:
/archives/ai
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Romcere.!
喜欢就支持一下吧