Pytorch for training1——read data/image

news/2024/5/1 4:12:32

blog

torch.utils.data.Dataset

  1. create dataset with class torch.utils.data.Dataset automaticly
import torch
from torch.utils.data import Datasetclass MyDataset(Dataset):def __init__(self, data):self.data = datadef __getitem__(self, index):# 根据索引获取样本return self.data[index]def __len__(self):# 返回数据集大小return len(self.data)# 创建数据集对象
data = [1, 2, 3, 4, 5]
dataset = MyDataset(data)# 根据索引获取样本
sample = dataset[2]
print(sample)

torchvision.datasets

  1. load data from classic dataset
import torch
from torchvision import datasets, transforms# 定义数据转换
transform = transforms.Compose([transforms.ToTensor(),  # 将图像转换为张量transforms.Normalize((0.5,), (0.5,))  # 标准化图像
])# 加载MNIST数据集
train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
test_dataset = datasets.MNIST(root='./data', train=False, download=True, transform=transform)

2. load data from Imagefolder with transform

from torchvision import datasets,transforms
from torch.utils.data import DataLoader
# transform.Compose是PyTorch中的一个类,用于将多个图像变换操作组合在一起。它的作用是将这些操作按照顺序依次应用于输入的图像数据。
trans = transforms.Compose([np.float32,transforms.ToTensor(),fixed_image_standardization
])dataset = datasets.ImageFolder(data_dir, transform=trans)
loader = DataLoader(dataset,num_workers=workers,batch_size=batch_size,collate_fn=training.collate_pil
)

在这里插入图片描述

3. Introduction of Imagefolder

# 定义输入图像的数据加载器
mytransform = transforms.Compose([transforms.RandomHorizontalFlip(),transforms.ToTensor(),])
dataset = datasets.ImageFolder(data_dir, transform=mytransform)	#对于图像,必须transform转成Tensor,才能for input,label in train_loader读取
print(dataset)
print(len(dataset))
print(len(dataset.imgs))
print(len(dataset.classes))
print(dataset.classes[-1])
print(dataset.classes)
print(dataset.imgs)

在这里插入图片描述

\root\cls1\img1.png\img2.png\cls2\img1.png\img2.png\cls3\img1.png\img2.png

(img,cls) in dataset.imgs

# img_list_1=[img for (img,idx) in dataset.imgs]
# with open("img_list_1.pkl","wb") as file:
#     pickle.dump(img_list_1,file)

DataLoader

  1. to loader data from example of torch.utils.data.Dataset
import torch
from torchvision import datasets, transforms# 创建数据加载器
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True, num_workers=4)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=64, shuffle=False, num_workers=4)# 使用数据加载器迭代样本
for images, labels in train_loader:# 训练模型的代码...

num_workers

link:加载 in batch的进程数

torchvision.transforms

from torchvision import transforms# 定义图像预处理操作
transform = transforms.Compose([transforms.Resize((256, 256)),  # 缩放图像大小为 (256, 256)transforms.RandomCrop((224, 224)),  # 随机裁剪图像为 (224, 224)transforms.RandomHorizontalFlip(),  # 随机水平翻转图像transforms.ToTensor(),  # 将图像转换为张量transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))  # 标准化图像
])# 对图像进行预处理
image = transform(image)

Image play with cv2,PIL.Image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

JAVA------基础篇

java基础 1.JDK JDK :java development kit JRE:java runtime environment JDK包含JRE java跨平台:因为java程序运行依赖虚拟机,虚拟机需要有对应操作系统的版本,而jre中有虚拟机。 当你想要在Linux系统下运行,则需要…

搭建Spark单机版环境

在搭建Spark单机版环境的实战中,首先确保已经安装并配置好了JDK。然后,从群共享下载Spark安装包,并将其上传至目标主机的/opt目录。接着,解压Spark安装包至/usr/local目录,并配置Spark的环境变量,以确保系统…

[网鼎杯 2020 朱雀组]Nmap1

打开题目 在源代码中看到了提示 先随便输入127.0.0.1 那我们试试输入 127.0.0.1 | ls 可以看到 | 被转义符号\所转义 那我们输入 127.0.0.1 /| ls 得到三条反斜线 我们猜测,我们输入的东西是被escapeshellarg和escapeshellcmd处理过后的结果 我们输入的东西必须…

HarmonyOS实战开发-如何实现一个简单的健康生活应用(上)

介绍 本篇Codelab介绍了如何实现一个简单的健康生活应用,主要功能包括: 用户可以创建最多6个健康生活任务(早起,喝水,吃苹果,每日微笑,刷牙,早睡),并设置任…

第三章:fs 模块

fs 模块 文章目录 fs 模块一、文件写入1-1.writeFile 异步写入1-2.writeFileSync 同步写入1-3.appendFile / appendFileSync 追加写入1-4.createWriteStream 流式写入1-5.写入文件的场景 二、文件读取2-1.readFile 异步读取2-2.readFileSync 同步读取2-3.createReadStream 流式…

MySQL之存储引擎,详细总结

在介绍存储引擎之前我们先了解了解MySQL的体系结构: 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限 服务层 第二层架构主要完成大多数的核心…