PyTorch 数据集划分:训练集和验证集

在使用 PyTorch 进行深度学习模型训练时,将数据集划分为训练集和验证集至关重要。训练集用于训练模型,而验证集用于评估模型性能并进行超参数调整。

以下是如何使用 PyTorch 的 random_split 函数将数据集划分为训练集和验证集的示例代码:

import torch
from torch.utils.data import DataLoader, random_split

# 指定pt文件的路径和训练数据
pt_file_path = r'C:\Users\18105\PycharmProjects\tuwenqingganfenxi\expanded.pt'
data = torch.load(pt_file_path)

# 将数据转换为张量
input_tensors = [torch.tensor(tensor) for tensor in data]

# 划分训练集和验证集
train_size = int(0.8 * len(input_tensors))
val_size = len(input_tensors) - train_size
train_dataset, val_dataset = random_split(input_tensors, [train_size, val_size])

# 创建训练集和验证集的数据加载器
batch_size = 64
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False)

# 进行训练和验证
for epoch in range(num_epochs):
    # 训练阶段
    for i, input_tensor in enumerate(train_loader):
        # 在训练集上进行训练

    # 验证阶段
    for j, input_tensor in enumerate(val_loader):
        # 在验证集上进行验证

在这个示例代码中:

  1. 我们首先使用 random_split 函数将 input_tensors 划分为了 train_datasetval_dataset,比例为 8:2。
  2. 然后,我们使用 DataLoader 创建了 train_loaderval_loader,用于迭代训练集和验证集数据。

注意:

  • shuffle=True 用于训练集数据加载器,以确保数据在每个 epoch 都被打乱。
  • shuffle=False 用于验证集数据加载器,以确保每次都以相同的顺序评估模型。

通过使用此代码,您可以轻松地将数据集划分为训练集和验证集,并创建数据加载器以用于模型训练和评估。

PyTorch 数据集划分:训练集和验证集

原文地址: http://www.cveoy.top/t/topic/klf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录