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

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

相关推荐
2501_938140071 小时前
做内容很省心,2026好用AI笔记,支持抖音小红书视频无水印保存
人工智能
sell-cloud4 小时前
Prompt Engineering要凉了?Fable 5.5能“猜“意图,但银行正在封杀AI Agent——企业AI的真正护城河是什么
人工智能·prompt
Navicat中国5 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI5 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区6 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris7 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy8 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V8 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai
AI_AGENT_DEV_AI8 小时前
AI英语教培智能体的开发
人工智能
物联网软硬件开发-轨物科技8 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人