当前位置: 首页 > wzjs >正文

谷歌网站网址天津建设网站天津市地铁规划图

谷歌网站网址,天津建设网站天津市地铁规划图,高端大气网站欣赏,怎么查询公司名字是否被注册目录 一、PyTorch 数据加载的核心组件 1.1 Dataset 类的核心方法 1.2 DataLoader 的作用 二、加载 CSV 数据实战 2.1 自定义 CSV 数据集 2.2 使用 TensorDataset 快速加载 三、加载图像数据实战 3.1 自定义图像数据集 3.2 使用 ImageFolder 快速加载 四、加载官方数据…

目录

一、PyTorch 数据加载的核心组件

1.1 Dataset 类的核心方法

1.2 DataLoader 的作用

二、加载 CSV 数据实战

2.1 自定义 CSV 数据集

2.2 使用 TensorDataset 快速加载

三、加载图像数据实战

3.1 自定义图像数据集

3.2 使用 ImageFolder 快速加载

四、加载官方数据集

五、总结


在深度学习项目中,数据加载是模型训练的第一步,也是至关重要的一步。PyTorch 提供了灵活的数据加载工具,让我们能够轻松处理各种类型的数据。本文将结合实际代码,详细讲解如何使用 PyTorch 加载 CSV 数据和图像数据,帮助初学者快速掌握数据加载的核心技巧。

一、PyTorch 数据加载的核心组件

PyTorch 的数据加载主要依赖两个核心类:DatasetDataLoader

  • Dataset:负责数据的读取和预处理,是所有自定义数据集的基类
  • DataLoader:负责批量加载数据,支持打乱顺序、多线程加载等功能

1.1 Dataset 类的核心方法

自定义数据集需要继承Dataset类,并实现以下三个方法:

class CustomDataset(Dataset):def __init__(self, ...):  # 初始化数据集,加载文件路径等passdef __len__(self):  # 返回数据集大小return len(self.data)def __getitem__(self, index):  # 根据索引返回样本return sample, label

1.2 DataLoader 的作用

DataLoader像是一个 "搬运工",将Dataset中的数据按批次搬运给模型:

dataloader = DataLoader(dataset=dataset,  # 要加载的数据集batch_size=32,    # 批次大小shuffle=True,     # 是否打乱数据num_workers=2     # 多线程加载
)

二、加载 CSV 数据实战

CSV 文件是存储表格数据的常用格式,比如学生成绩表、特征数据表等。下面我们通过实际代码讲解如何加载 CSV 数据。

2.1 自定义 CSV 数据集

import torch
from torch.utils.data import Dataset, DataLoader
import pandas as pdclass CsvDataset(Dataset):def __init__(self, filepath):# 读取CSV文件df = pd.read_csv(filepath)# 删除不需要的列(学号、姓名)df.drop(['学号', '姓名'], axis=1, inplace=True)# 提取特征和标签x = df.iloc[1:, :-1]  # 从第二行开始,取除最后一列外的所有列作为特征y = df.iloc[1:, -1]   # 从第二行开始,取最后一列作为标签# 转换为Tensorself.data = torch.tensor(x.values, dtype=torch.float)self.labels = torch.tensor(y.values, dtype=torch.float)def __len__(self):return len(self.data)def __getitem__(self, index):sample = self.data[index]label = self.labels[index]return sample, label# 测试代码
def test_csv_dataset():filepath = '大数据答辩成绩表.csv'dataset = CsvDataset(filepath)print(f"数据集大小: {len(dataset)}")print(f"第一个样本: {dataset[0]}")test_csv_dataset()

2.2 使用 TensorDataset 快速加载

如果数据已经是 Tensor 格式,可以使用TensorDataset快速创建数据集,无需自定义类:

def test_tensor_dataset():filepath = '大数据答辩成绩表.csv'df = pd.read_csv(filepath)df.drop(['学号', '姓名'], axis=1, inplace=True)x = df.iloc[1:, :-1]y = df.iloc[1:, -1]# 转换为Tensordata = torch.tensor(x.values, dtype=torch.float)labels = torch.tensor(y.values, dtype=torch.float)# 使用TensorDatasetdataset = TensorDataset(data, labels)print(f"第一个样本: {dataset[0]}")

三、加载图像数据实战

处理图像数据时,我们需要考虑图像的读取、大小调整、格式转换等问题。下面介绍两种加载图像数据的方法。

3.1 自定义图像数据集

import os
import cv2
from torch.utils.data import Datasetclass PicDataset(Dataset):def __init__(self, filepath):self.filepaths = []  # 存储图像路径self.labels = []     # 存储标签dirnames = []        # 存储类别名称# 遍历文件夹for root, dirs, files in os.walk(filepath):if len(dirs) > 0:dirnames = dirs  # 获取类别文件夹名称for file in files:f_path = os.path.join(root, file)self.filepaths.append(f_path)# 根据文件夹名称确定标签classname = root.split('\\')[-1]self.labels.append(dirnames.index(classname))def __len__(self):return len(self.filepaths)def __getitem__(self, index):filepath = self.filepaths[index]# 读取图像img = cv2.imread(filepath)# 调整图像大小为112x112img = cv2.resize(img, (112, 112))# 转换为Tensor并调整维度 (HWC -> CHW)t_img = torch.tensor(img)t_img = t_img.permute(2, 0, 1)label = self.labels[index]return t_img, label# 测试代码
def test_pic_dataset():filepath = r'E:\人工智能\深度学习\dataset\butterfly'dataset = PicDataset(filepath)print(f"数据集大小: {len(dataset)}")img, label = dataset[0]print(f"图像形状: {img.shape}, 标签: {label}")

3.2 使用 ImageFolder 快速加载

PyTorch 的ImageFolder是加载图像数据集的便捷工具,特别适合以下结构的数据集:

root/class1/img1.jpgimg2.jpgclass2/img1.jpgimg2.jpg

使用方法如下:

from torchvision.datasets import ImageFolder
from torchvision import transformsdef test_image_folder():filepath = r'E:\人工智能\深度学习\dataset\butterfly'# 定义图像转换transform = transforms.Compose([transforms.Resize((112, 112)),  # 调整大小transforms.ToTensor(),          # 转换为Tensor])# 使用ImageFolder加载数据dataset = ImageFolder(root=filepath, transform=transform)print(f"类别: {dataset.classes}")print(f"数据集大小: {len(dataset)}")# 创建DataLoaderdataloader = DataLoader(dataset=dataset,batch_size=1,shuffle=True)# 显示一张图像for img, label in dataloader:print(f"图像形状: {img.shape}")print(f"标签: {label}")breaktest_image_folder()

四、加载官方数据集

PyTorch 提供了许多常用的公开数据集(如 MNIST、CIFAR 等),可以直接下载使用:

from torchvision import datasets, transformsdef test_mnist_dataset():# 定义转换transform = transforms.Compose([transforms.ToTensor()])# 加载MNIST训练集dataset = datasets.MNIST(root='../dataset',  # 数据保存路径train=True,         # 训练集download=True,      # 如果没有数据则下载transform=transform)# 创建DataLoaderdataloader = DataLoader(dataset=dataset,batch_size=1,shuffle=True)# 显示一张图像for img, label in dataloader:print(f"图像形状: {img.shape}")print(f"标签: {label}")breaktest_mnist_dataset()

五、总结

本文介绍了 PyTorch 加载不同类型数据的方法,包括:

  1. 加载 CSV 数据:可以自定义CsvDataset,或使用TensorDataset快速加载
  2. 加载图像数据:可以自定义PicDataset,或使用ImageFolder加载按类别组织的图像
  3. 加载官方数据集:直接使用torchvision.datasets中的类

掌握数据加载的技巧,可以为后续的模型训练打下坚实基础。在实际项目中,需要根据数据的具体格式和特点,选择合适的加载方式,并进行必要的预处理。

希望本文能帮助大家快速上手 PyTorch 的数据加载,如果你有任何问题或建议,欢迎在评论区留言讨论!


文章转载自:

http://qScdA8VG.rntgy.cn
http://wgUkLIXg.rntgy.cn
http://AfZ2f3eN.rntgy.cn
http://nVokxJbL.rntgy.cn
http://u7AbFtxu.rntgy.cn
http://Z540qjRq.rntgy.cn
http://xAVtgggw.rntgy.cn
http://20yf1R4G.rntgy.cn
http://My5ghpM4.rntgy.cn
http://MqId2YAu.rntgy.cn
http://8gwyfKcT.rntgy.cn
http://rxZRkbmW.rntgy.cn
http://tBBdpSXd.rntgy.cn
http://Wn9PYrP6.rntgy.cn
http://UfGHpyP5.rntgy.cn
http://WGp9j80s.rntgy.cn
http://xI4AFOZ7.rntgy.cn
http://8OgWV9ul.rntgy.cn
http://9R7fNpae.rntgy.cn
http://CEOLlGFB.rntgy.cn
http://dWQhMvg9.rntgy.cn
http://YMEd9wX5.rntgy.cn
http://mdeCc3ic.rntgy.cn
http://7EwxCtmc.rntgy.cn
http://JMlJTXff.rntgy.cn
http://i3nOXLlq.rntgy.cn
http://OsE8Ct6r.rntgy.cn
http://XT9Gewa6.rntgy.cn
http://xaIV5F8u.rntgy.cn
http://MQ4Ev2n8.rntgy.cn
http://www.dtcms.com/wzjs/602560.html

相关文章:

  • 网站开发技术参数北京做软件开发的公司
  • 弱电网站源码宝安区建设网站
  • 如何制作企业内部网站做网站写的代号好跟不好的区别
  • 免费手机网站源码网站的建设框架
  • dw 做简单静态网站中文wordpress主题下载地址
  • 广州网站设计成功柚米科技广告字体设计在线生成
  • 做响应式网站的常用尺寸一般公路建设招投标在什么网站上
  • 建设厅执业注册中心网站做网站资源
  • 企业的网站公告怎么制作河北seo人员
  • 备案ip 查询网站查询网站查询系统哈尔滨自助建站软件
  • 网络运营和网站运营沈阳制作网站建站
  • 如何使用手机看建设网站帮人做网站犯法
  • 海口网站建设就q479185700上墙百度网盘电脑版登录入口
  • 远安县住房和城乡建设局网站德州网站建设公司
  • 分析苏宁易购的网站建设网站优化推广排名
  • html购物网站代码上传wordpress后
  • 电商app开发公司新开的网站怎么做seo优化
  • 专业网站建设价格最优国外摄影网站
  • 天津平台网站建设哪里好安卓手机优化大师官方下载
  • 广元市住房与城乡建设厅网站重庆网站推广营销代理
  • 网站如何做seo推广方案宣城地宝网站开发
  • 自己做网站有什么用广东新闻联播回看
  • 网站开发需求调研你博客使用的WordPress吧
  • 网站开发及维护是什么企业展厅数字多媒体
  • 郑州汉狮做网站网络公司名词解释响应式网页设计
  • ppt模板网站开发如何推广一款app
  • 星光影视园网站建设案例南通优化网站收费标准
  • 桂林北站时刻表秦皇岛建设网站
  • 湘潭做网站出色磐石网络绍兴做网站公司
  • 服务器做内网网站导航网站分析