佛山做公司网站,十大室内设计公司,wordpress与广告有关的主题,可以做填字游戏的网站1.torch.utils.data.TensorDataset
功能定位
torch.utils.data.TensorDataset 是一个将多个张量#xff08;Tensor#xff09;数据进行简单包装整合的数据集类#xff0c;它主要的作用是将相关联的数据#xff08;比如特征数据和对应的标签数据等#xff09;组合在一起Tensor数据进行简单包装整合的数据集类它主要的作用是将相关联的数据比如特征数据和对应的标签数据等组合在一起形成一个方便后续用于训练等操作的数据集对象。
例如如果你有输入特征数据 x形状为 [n_samples, feature_dim]和对应的标签数据 y形状为 [n_samples]且它们都是 torch.Tensor 类型可以这样创建 TensorDataset
import torch
from torch.utils.data import TensorDatasetx torch.randn(100, 10) # 模拟100个样本每个样本特征维度为10
y torch.randint(0, 2, (100,)) # 模拟二分类标签dataset TensorDataset(x, y)特点 简单包装只是把传入的张量按照样本维度进行了对应组合并没有对数据做复杂的预处理、采样等额外操作。 索引支持支持像普通列表那样通过索引访问其中的数据元素例如 dataset[0] 会返回由对应索引的特征和标签组成的元组按照传入构造函数的张量顺序。 适用于小型数据集直接使用当数据量不大且数据格式已经整理为张量形式时可以直接基于它来进行简单的模型训练循环等操作不过对于批量处理等更复杂的情况支持有限需要进一步配合其他工具。
2.torch.utils.data.DataLoader
功能定位
torch.utils.data.DataLoader 是一个用于加载数据的工具类它围绕着给定的数据集比如 TensorDataset 或者自定义的继承自 Dataset 的类实例等实现了诸如批量加载数据、打乱数据顺序、并行加载数据等功能旨在让数据能够以合适的方式、合适的批量大小等被送入到模型中进行训练、验证或测试等操作。
示例
from torch.utils.data import DataLoaderbatch_size 10
dataloader DataLoader(dataset, batch_sizebatch_size, shuffleTrue)for batch_x, batch_y in dataloader:# 这里的batch_x和batch_y就是每次迭代取出的一个批量的特征和标签数据pass特点 批量处理可以按照设定的 batch_size 参数将数据集中的数据划分为一个个的小批量mini-batch方便模型以批量的方式进行梯度计算更新有助于优化训练过程和提升效率尤其在大数据集场景下优势明显。 数据打乱通过设置 shuffleTrue 可以在每个训练轮次epoch开始时对数据集里面的数据顺序进行随机打乱使得数据的输入顺序具有随机性这有助于提升模型训练的泛化能力避免模型因数据顺序固定而产生过拟合等问题。 并行加载支持多进程加载数据通过设置 num_workers 参数大于 0能够利用多核 CPU 的优势加快数据读取和预处理的速度特别是在处理大规模数据集或者数据加载比较耗时的情况下能显著提升整体训练效率。 灵活性和通用性它可以适配各种不同类型的数据集只要这些数据集继承自 torch.utils.data.Dataset 抽象类并实现了必要的 __len__ 和 __getitem__ 等方法因此无论是简单的 TensorDataset 还是复杂的自定义数据集都可以用它来加载数据。
总的来说TensorDataset 侧重于对已有张量数据进行简单的整合包装形成数据集而 DataLoader 侧重于围绕数据集实现数据的批量加载、打乱顺序、并行化等复杂的数据加载相关功能它们通常配合使用先使用 TensorDataset 组织好数据再通过 DataLoader 按照训练需求来加载和处理这些数据并送入模型中。
from torch.utils.data import TensorDataset
from torch.utils.data import DataLoadertrain_ds TensorDataset(x_train, y_train)
train_dl DataLoader(train_ds, batch_sizebs, shuffleTrue)valid_ds TensorDataset(x_valid, y_valid)
valid_dl DataLoader(valid_ds, batch_sizebs)