杂记(3):在Pytorch中如何操作将数据集分为训练集和测试集?

在Pytorch中如何操作将数据集分为训练集和测试集?

  • [0. 前言](#0. 前言)
  • [1. 手动切分](#1. 手动切分)
  • [2. train_test_split方法](#2. train_test_split方法)
  • [3. Pytorch自带方法](#3. Pytorch自带方法)
  • [4. 总结](#4. 总结)

0. 前言

数据集需要分为训练集和测试集! 其中,训练集单纯用来训练,优化模型参数;测试集单纯用来测试,评价模型效果。然而,如何将数据集分为训练集和测试集这个简单的问题网上的回答也是五花八门,明明有简单的方法,当然不想用麻烦的方法啦!因此,这里做一下简单记录!

1. 手动切分

这里所言的手动切分指的是:将数据集前面一部分分为训练集,后面一部分分为测试集。具体代码而言如下:

python 复制代码
# 假设所有数据极为数组a 标签为b
train_X = a[:int(0.8*len(a))]
test_X = a[int(0.8*len(a)):]

train_Y = b[:int(0.8*len(a))]
test_Y = b[int(0.8*len(a)):]

train_dataset= Data.TensorDataset(torch.FloatTensor(train_X ), torch.FloatTensor(train_Y ))
test_dataset= Data.TensorDataset(torch.FloatTensor(test_X), torch.FloatTensor(test_Y))

trainLoader = DataLoader(dataset = train_dataset,batch_size = 18,num_workers = 0,shuffle = True)
testLoader = DataLoader(dataset = test_dataset,batch_size = 18,num_workers = 0,shuffle = True)

2. train_test_split方法

使用机器学习中的 train_test_split 方法!在机器学习中切分数据集一般都用该方法,但是在Pytorch中还是需要进行转换后方可输入模型。

python 复制代码
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(a, b, test_size=0.33, random_state=42)

train_dataset= Data.TensorDataset(torch.FloatTensor(X_train), torch.FloatTensor(y_train))
test_dataset= Data.TensorDataset(torch.FloatTensor(X_test), torch.FloatTensor(y_test ))

trainLoader = DataLoader(dataset = train_dataset,batch_size = 18,num_workers = 0,shuffle = True)
testLoader = DataLoader(dataset = test_dataset,batch_size = 18,num_workers = 0,shuffle = True)

3. Pytorch自带方法

Pytorch中自带的有将数据集随机切分的方法 ( torch.utils.data.random_split ),不需要额外的操作!!!!具体代码如下:

python 复制代码
import torch.utils.data as Data

dataset = Data.TensorDataset(torch.FloatTensor(a), torch.FloatTensor(b))
batch_size = 16
# 将数据集分为训练集和测试集
trainLoader, testLodaer = Data.random_split(dataset,
                                            lengths=[int(0.9 * len(dataset)),
                                            len(dataset) - int(0.9 * len(dataset))],
                                            generator=torch.Generator().manual_seed(0))

4. 总结

到此,使用 在Pytorch中如何操作将数据集分为训练集和测试集已经介绍完毕了!!! 如果有什么问题欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的方法也可以在评论区提出,后续会对其进行添加!!!!

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。

相关推荐
fpcc1 天前
并行编程实战——异步编程的屏障的整体分析
人工智能·cuda
Jing_jing_X1 天前
MCP (一)是什么?一文讲清 AI 如何连接现实世界
数据库·人工智能·oracle
小何code1 天前
人工智能【第12篇】朴素贝叶斯分类器:基于概率的分类方法
机器学习·朴素贝叶斯·贝叶斯定理
好运的阿财1 天前
OpenClaw工具拆解之host_workspace_write+host_workspace_edit
前端·javascript·人工智能·机器学习·ai编程·openclaw·openclaw工具
CodePlayer竟然被占用了1 天前
Cursor SDK:用写代码的方式写 Agent
人工智能
eastyuxiao1 天前
OpenClaw 自动处理流程图 + 配置清单 可应用场景
人工智能·流程图
沪漂阿龙1 天前
从买菜做饭到大模型:一份真正看懂深度学习的硬核指南
人工智能·深度学习
AI周红伟1 天前
AI学习第一课:OpenClaw企业实战应用工作坊
大数据·人工智能
AI科技星1 天前
全域数学·第二部 几何本原部 《无穷维射影几何原本》合订典藏版【乖乖数学】
人工智能·线性代数·数学建模·矩阵·量子计算
ProgramHelpOa1 天前
Optiver 2026 OA 全面复盘|26NG / Intern 最新高频题型整理
人工智能·算法·机器学习