当前位置: 首页 > news >正文

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

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

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

0. 前言

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

1. 手动切分

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

# 假设所有数据极为数组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中还是需要进行转换后方可输入模型。

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 ),不需要额外的操作!!!!具体代码如下:

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

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

相关文章:

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

在Pytorch中如何操作将数据集分为训练集和测试集? 0. 前言1. 手动切分2. train_test_split方法3. Pytorch自带方法4. 总结 0. 前言 数据集需要分为训练集和测试集! 其中,训练集单纯用来训练,优化模型参数;测试集单纯用…...

【MySQL篇】数据库角色

前言 数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。 CREATE ROLE:创建一个角色 GRANT:给角色授…...

c++ 信奥赛编程 2050:【例5.20】字串包含

#include<iostream> #include<cstring> using namespace std; int main() {string str1,str2;int temp;cin>>str1>>str2;//判断长度 if(str1.size()<str2.size()){ swap(str1,str2); //交换内容 }str1str1str1; //AABCDAABCDAABCDAABCDif(str…...

用dbeaver创建一个enum类型,并讲述一部分,mysql的enum类型的知识

写这个博客的目的就是我在网上看了半天&#xff0c;发现没有这方面的知识&#xff0c;也许是老手认为这个太简单了&#xff0c;不过我还是告诉新人使用dbeaver来创建一个enum类型的方法&#xff1a; 就是enum("a","b","name") 第一步用dbeaver…...

Paste v4.1.2(Mac剪切板)

Paste for Mac是一款运行在Mac OS平台上的剪切板小工具&#xff0c;拥有华丽的界面效果&#xff0c;剪切板每一条记录可显示&#xff08;预览&#xff09;文本&#xff0c;图片等记录的完整内容&#xff0c;可以记录最近指定条数的剪切板信息&#xff0c;方便用户随时调用&…...

事件绑定-回调函数

1.事件的概念 2.小程序常用的事件集 2.1 bindtap 点击回调事件方法 2.1.1语法格式 2.1.2 事件处理中调用data 使用setDatacount&#xff1a;这种方式 直接使用this.data.count 2.1.3 事件处理中传参 错误示范&#xff1a; 传递方式&#xff1a;数值用{{}}&#xff0c;直接引…...

Makefile 总述

目录 一、Makefile 里有什么&#xff1f; 1、显式规则 2、隐晦规则 3、变量的定义 4、文件指示 5、注释 二、Makefile 的文件名 三、引用其它的 Makefile 四、环境变量 MAKEFILES 五、make 的工作方式 一、Makefile 里有什么&#xff1f; Makefile 里主要包含了五个东…...

写给新用户-Mac软件指南篇:让你的Mac更好用

用了macOS也有小四年了&#xff0c;今天打算分享一下Mac上的常用软件&#xff0c;说不上精通&#xff0c;但也算是有一些心得体会。平时也会定期对软件做整理&#xff0c;所以有了这篇文章。如果能帮到刚刚接触macOS或正在寻觅软件的你&#xff0c;那当然再好不过了。 软件推荐…...

03运算符综合

03 3.1.1算数运算符 3.1.2赋值运算符 3.1.3比较&#xff08;关系&#xff09;运算符 3.1.4逻辑运算符 3.1.5位运算符 3.2运算符的优先级 3.3条件表达式...

LeetCode刷题--思路总结记录

23-11-08每日一题&#xff1a;2609.最长平衡子字符串 链接&#xff1a;2609.最长平衡子字符串 总体思路&#xff1a; 平衡字符串要求“字符串前半段的0和后半段的1个数相同” > 分别记录0和1的计数结果&#xff0c;并最终取二者的最小值2字符串必须0开头&#xff0c;1结束 …...

Nodejs

node是运行js的环境 node 基础命令 // 初始化 // npm init // npm init -y// 全部选择yes // 安装包 // npm install 包名 // npm i// 安装package-lock.json里面所有的包到node_modules // npm i 包名// 安装当前最新版&#xff0c; // npm i 包名版本号//指定版本安装 // n…...

【面经】spring,springboot,springcloud有什么区别和联系

Spring、SpringBoot、SpringCloud都是Java开发中的重要框架&#xff0c;它们的作用和区别如下&#xff1a; Spring&#xff1a;是一个轻量级的开源框架&#xff0c;是为解决企业应用开发的复杂性而创建的。它提供了AOP&#xff08;面向切面编程&#xff09;和Ioc&#xff08;控…...

SpringBoot Kafka消费者 多kafka配置

一、配置文件 xxxxxx:kafka:bootstrap-servers: xx.xx.xx.xx:9092,xx.xx.xx.xx:9092consumer:poll-timeout: 3000key-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializer…...

git 标签相关命令

要在本地仓库中添加标签&#xff0c;你可以使用以下命令&#xff1a; git tag <tag_name> 这将在当前所处的提交上创建一个轻量级标签&#xff08;lightweight tag&#xff09;。如果你想要创建一个带有附注信息的标签&#xff0c;可以使用 -a 选项&#xff1a; git t…...

我在Vscode学OpenCV 图像运算(权重、逻辑运算、掩码、位分解、数字水印)

文章目录 权重 _ 要求两幅图像是相同大小的。[ 1 ] 以数据说话&#xff08; 1&#xff09; 最终&#xff1a;&#xff08; 2 &#xff09;gamma _输出图像的标量值 [ 2 ] 图像的展现力gamma并不等同于增加曝光度&#xff08; 1 &#xff09;gamma100&#xff08; 2 &#xff09…...

【 Docker: 数据卷挂载】

背景 Docker只提供了容器运行的必备依赖&#xff0c;但是一些编辑等操作的依赖是不支持的&#xff0c;如vi操作容器内部文件、将静态资源拷贝到容器内来等。 docker pull nginx docker run -d -p 81:80 --namemynginx -v D:/docker/nginx/www:/usr/share/nginx/www -v D:/dock…...

windows上的静态链接和动态链接的区别与作用(笔记)

C源代码文件经过预编译、编译和汇编后输出的目标文件的后缀和操作系统是有关系的。不同的操作系统使用不同的命名约定和文件格式来表示目标文件。常见的目标文件后缀包括&#xff1a; - Windows系统&#xff1a;.obj、.lib、.dll - Linux系统&#xff1a;.o、.a、.so - macOS系…...

MySQL和Postgresql数据库备份和恢复

MySQL和Postgresql数据库备份和恢复 一、MySQL数据库备份 备份单个数据库 $ mysqldump -uroot -p bdname > dbname.sql备份多个数据库 $ mysqldump -uroot -p --databases dbname1 dbname2 ... > dbname.sql # 备份所有数据库 $ mysqldump -uroot -p --all-databases…...

使用MCU上的I2C总线进行传感器应用

使用MCU上的I2C总线进行传感器应用是嵌入式系统开发中常见的任务&#xff0c;本文将介绍在MCU上实现I2C总线传感器应用的相关技术和流程。 首先&#xff0c;I2C&#xff08;Inter-Integrated Circuit&#xff09;总线是一种常用的串行通信协议&#xff0c;用于连接多个设备&am…...

汽车标定技术(七)--基于模型开发如何生成完整的A2L文件(2)

目录 1. 自定义ASAP2文件 2. asap2userlib.tlc需要修改的部分 3. 标定量观测量地址替换 3.1 由elf文件替换 3.2 由map文件替换 3.3 正则表达式&#xff08;含asap2post.m修改方法&#xff09; 4.小结 书接上文汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)-C…...

CAN数据格式转换不求人:Python cantools库实战DBC转Excel/CSV全流程

CAN数据格式转换实战&#xff1a;用Python cantools库实现DBC与Excel/CSV高效互转 在汽车电子和工业控制领域&#xff0c;CAN总线数据的处理效率直接影响着开发测试周期。当测试工程师需要将DBC文件中的信号定义导入Excel进行可视化分析&#xff0c;或是将Excel中调整好的参数表…...

【nanobot】 实战与二次开发:4000 行代码,一套完整的 【AI Agent】 框架

&#x1f408; nanobot 实战与二次开发&#xff1a;4000 行代码&#xff0c;一套完整的 AI Agent 框架 &#x1f935;‍♂️ 个人主页&#xff1a;小李同学_LSH的主页 ✍&#x1f3fb; 作者简介&#xff1a;LLM学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&…...

Python电商风控决策系统性能优化全路径(从CPU飙升98%到稳定42ms响应)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Python电商实时风控决策 核心挑战与架构定位 电商场景中&#xff0c;秒杀抢购、异常登录、刷单套利等行为要求风控系统在毫秒级完成特征提取、规则匹配与模型打分。Python 因其丰富的生态&#xff08;…...

DLSS Swapper终极指南:三步轻松提升游戏性能的免费神器

DLSS Swapper终极指南&#xff1a;三步轻松提升游戏性能的免费神器 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为PC游戏玩家设计的DLSS版本管理工具&#xff0c;让您无需等待游戏官方更新就能…...

别再只会选整个面了!Ansys Workbench静力学分析中,如何精准划分受力区域(以方钢为例)

Ansys Workbench静力学分析&#xff1a;精准划分受力区域的实战指南 在机械设计与结构分析领域&#xff0c;精确模拟实际工况是确保仿真结果可靠性的关键。许多工程师在使用Ansys Workbench进行静力学分析时&#xff0c;常常遇到一个典型问题&#xff1a;无法对模型局部施加力或…...

从‘cl.exe找不到’到GPU编译失败:手把手教你调试MatConvNet安装中的那些经典报错

从‘cl.exe找不到’到GPU编译失败&#xff1a;深度解析MatConvNet安装中的经典报错解决方案 当你在深夜的实验室里盯着MATLAB命令行中不断跳出的红色错误提示&#xff0c;那种从期待到挫败的情绪转换&#xff0c;想必每个尝试安装MatConvNet的研究者都深有体会。不同于常规的安…...

Live Avatar数字人模型保姆级部署教程:4步搞定AI视频生成

Live Avatar数字人模型保姆级部署教程&#xff1a;4步搞定AI视频生成 1. 准备工作&#xff1a;硬件与软件环境检查 1.1 硬件要求详解 Live Avatar对硬件有明确要求&#xff0c;这是确保模型正常运行的基础&#xff1a; 显卡要求&#xff1a; 最低配置&#xff1a;单卡NVIDIA…...

别再被SAML绕晕了!用一张图+三个真实案例,彻底搞懂身份联合登录

别再被SAML绕晕了&#xff01;用一张图三个真实案例&#xff0c;彻底搞懂身份联合登录 每次看到SAML协议文档里那些XML标签和晦涩术语&#xff0c;是不是感觉像在读天书&#xff1f;明明知道它很重要——企业级SSO、云服务集成、跨系统身份管理都离不开它&#xff0c;但就是搞不…...

终极指南:如何用AI视频插帧工具让普通视频秒变流畅大片

终极指南&#xff1a;如何用AI视频插帧工具让普通视频秒变流畅大片 【免费下载链接】flowframes Flowframes Windows GUI for video interpolation using DAIN (NCNN) or RIFE (CUDA/NCNN) 项目地址: https://gitcode.com/gh_mirrors/fl/flowframes 你是否曾为视频卡顿、…...

别再死记硬背LMFS参数了!手把手教你用JESD204B传输层搞定ADC到FPGA的数据打包

JESD204B传输层实战&#xff1a;从ADC采样到FPGA组帧的智能参数配置法 在高速数据采集系统的设计中&#xff0c;ADC与FPGA之间的数据传输一直是工程师面临的挑战。传统方法中&#xff0c;工程师往往需要死记硬背复杂的LMFS参数组合&#xff0c;这不仅效率低下&#xff0c;还容易…...