PyTorch 数据集划分:训练集和验证集
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):
# 在验证集上进行验证
在这个示例代码中:
- 我们首先使用
random_split函数将input_tensors划分为了train_dataset和val_dataset,比例为 8:2。 - 然后,我们使用
DataLoader创建了train_loader和val_loader,用于迭代训练集和验证集数据。
注意:
- 将
shuffle=True用于训练集数据加载器,以确保数据在每个 epoch 都被打乱。 - 将
shuffle=False用于验证集数据加载器,以确保每次都以相同的顺序评估模型。
通过使用此代码,您可以轻松地将数据集划分为训练集和验证集,并创建数据加载器以用于模型训练和评估。
原文地址: http://www.cveoy.top/t/topic/klf 著作权归作者所有。请勿转载和采集!