Pytorch中的数据操作和预处理

news2024/11/29 2:39:17

Pytorch中的数据操作和预处理

整体概述

在Pytorch中的torch.util.data模块包含着一些常用的数据预处理的操作,主要用于数据的读取、切分、准备等

常用的数据操作类如下表所示

功能
torch.utils.data.TensorDataset()将数据处理为张量
torch.utils.data. ConcatDataset()连接多个数据集
torch.utils.data.Subset()根据索引获得数据集的子集
torch.utils.data. DataLoader数据加载器
torch.utils.data. random_split将数据集拆分为指定长度的非重叠数据集

使用这些类能够对高维数组、图像等各种类型的数据进行预处理,以便深度学习模型使用。

高维数组

很多情况下需要从文本文件(例如csv文件)中读取高维数组。
这一类数据的特征是,每个样本都有很多个预测变量(特征)和一个被预测变量(目标标签)特征通常是数值变量或者离散变量,连续变量对应回归、离散变量对应分类。

使用sklearn中提供的数据集load_boston和load_iris,来进行回归和分类数据的准备

回归数据准备

过程:加载相应模块,然后读取数据。

注意:使用sklearn中的数据集需要,使用1.2版本一下的数据集,否则会出错误

pip uninstall scikit-learn

pip install scikit-learn==1.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述
安装之前的版本
在这里插入图片描述

import torch
import torch.utils.data as Data
from sklearn.datasets import load_boston,load_iris

# 读取波士顿数据集
boston_X,boston_Y = load_boston(return_X_y=True)
print(boston_X.dtype)
print(boston_Y.dtype)
boston_Y

在这里插入图片描述

在进行数据处理的时候需要把64位的Numpy数据转化位32位的浮点型张量

# 将训练集x y转化为张量
train_xt = torch.from_numpy(boston_X.astype(np.float32))
train_yt = torch.from_numpy(boston_Y.astype(np.float32))
train_xt.dtype
train_yt.dtype

在这里插入图片描述
在训练全连接神经网络时,通常一次使用一个batch的数据进行权重的更新,torch.util.data.DataLoader()函数可以将输入数据集(包含数据特征张量和被预测的特征张量)获得一个加载器,每次迭代使用一个batch的数据

使用方法如下

train_data = Data.TensorDataset(train_xt,train_yt)
# 定义一个数据加载集,将训练数据集进行批处理
train_loader = Data.DataLoader(
    ##使用的数据集
     dataset = train_data,
    ##批处理的大小
     batch_size=64,
     shuffle=True,
    ##使用两个进程
     num_workers =1, 
)
# 检测训练数据集的一个batch的样本的维度是否正确
for step, (b_x,b_y) in enumerate(train_loader):
    if step > 0:
        break
        
# 判断循环完成之后的类型
b_x.shape

print(b_x.dtype)

在这里插入图片描述
根据分类的类型,可以验证得知波士顿房价回归预测的数据集

分类数据集

分类数据集的处理思想与回归的思想基本相同,处理逻辑类似,不在进行代码的演示。

如有需要可以联系我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sqli-labs靶场通关(11-20)

接着上一条博客 Less-11 打开题我们发现界面发生了明显的变化,变成了登录界面。前十关的注入点都在上方的url中(get型),从11关开始就变为了post型,本题的注入点就在输入框中。 我们随便输入比如1,会出现以下界面,上方…

外贸企业必备的客户服务系统!

客户服务已经成为现在市场中,各个企业关注的重点对象。特别是对于外贸企业来讲,优质的客户服务不仅能为客户留下好的印象,提升企业的品牌形象,还能为企业带来长期的收益。而想要做好客户服务,选择一款合适的客户服务系…

验证码就用它,一键接入,优雅又有趣

现在登录什么账号,基本都用到验证码,多数是短信验证码,不知道大家是什么感受,了不起倒不太喜欢这种操作,每次一登录一个账号就要去手机清理一下短信,不然小红点看着难受。不过近两年行为验证码异军突起&…

估计一个点云的表面法线

包含相关头文件 #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/features/normal_3d.h> #include <pcl/visualization/pcl_visualizer.h> 定义了两个类型别名 PointT 和 PointNT&#xff0c;用于表示输入点云和输出点云中各…

Splashtop 在2023年 IT Europa 渠道奖评选活动中当选“特别推荐供应商”

2023年5月24日 加利福尼亚州库比蒂诺 Splashtop 最近在 IT Europa 渠道奖评选活动中&#xff0c;因与 Beyond Digital Solutions 合作的创新客户应用程序而当选年度垂直应用解决方案类别的“特别推荐供应商”。 Beyond Digital Solutions 是一家综合广告公司&#xff0c;主要…

SpringBoot + K8S 中的滚动发布、优雅停机、弹性伸缩、应用监控、配置分离

来源&#xff1a;blog.csdn.net/qq_14999375/article/details/123309636 前言 配置 健康检查 滚动更新 弹性伸缩 Prometheus集成 配置分离 汇总配置 业务层面 运维层面 前言 K8s SpringBoot实现零宕机发布&#xff1a;健康检查滚动更新优雅停机弹性伸缩Prometheus监控…

基于java jsp+mybatis+Spring+的SSM二手交易网站设计实现

基于java jspmybatisSpring的SSM二手交易网站设计实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 …

如何做好软件开发项目管理?

软件越来越多地出现在我们的生活中。为了快速向大众提供这些产品&#xff0c;软件公司必须知道如何有效管理他们的软件项目。 本文将讨论软件项目管理的重要性&#xff0c;以及投资软件项目管理平台的一些好处。 什么是软件开发的项目管理&#xff1f; 软件项目是创建完整的…

车辆管理系统为企业带来4大作用,原来拥有该系统也如此简单

什么是车辆管理系统 车辆管理系统&#xff08;Vehicle Management System&#xff09;是一种用于管理车辆、驾驶员和交通管理的系统。它可以便捷地管理车辆信息&#xff0c;包括车辆的基本信息、行驶记录、保养维修记录、司机信息以及车辆运营成本等。车辆管理系统可以为车队管…

开源赋能 工业铸魂|2023开放原子全球开源峰会开源工业软件分论坛圆满举行

6 月 12 日&#xff0c;由开放原子开源基金会主办&#xff0c;开源工业软件工作委员会&#xff08;以下简称“工委会”&#xff09;承办&#xff0c;工业和信息化部电子第五研究所、哈尔滨工程大学青岛创新发展基地协办的 2023 开放原子全球开源峰会开源工业软件分论坛在京举行…

Linux: 关于blocked for more than 600 seconds的解决方法

背景 在Centos 7的系统日志 /var/log/message中出现大量的 “blocked for more than 600 seconds”和“echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.” 的错误。 如下图所示&#xff1a; 问题原因 默认情况下&#xff0c; Linux最多会使…

这所211非常保护一志愿,录取最低分263分,多个专业上线即录取!

一、学校及专业介绍 云南大学&#xff08;Yunnan University&#xff09;&#xff0c;简称云大&#xff08;YNU&#xff09;&#xff0c;位于云南省昆明市&#xff0c;是教育部与云南省“以部为主、部省合建”的全国重点大学&#xff0c;国家“双一流”建设高校&#xff0c;云南…

EBU5476 Microprocessor System Design 知识点总结_4 Interrupt

Interrupts 比如我们程序的逻辑是按键按下的时候点亮小灯。第一种做法是 Polling 轮询&#xff0c;一直看&#xff1a;按键按下了吗&#xff1f;没有。按下了吗&#xff1f;没。按下了吗&#xff1f;…… 这样主要是效率低浪费CPU资源&#xff0c;如果为了节约资源轮询间隔大…

SpringBoot2.3集成Spring Security(一)

业务背景 首先一个项目最基础的部分一定是登录部分&#xff0c;那么有了登录肯定会有对应的权限校验、身份校验。 那么在没有使用Spring Security之前&#xff0c;大多数设计思路都是通过各种拦截器、监听器来控制用户的访问。但是这种方式&#xff0c;后续的维护会越来越复杂…

组合模式(十二)

请相信自己&#xff0c;请再次相信自己&#xff0c;请一定要相信自己 上一章简单介绍了装饰者模式(十一), 如果没有看过, 请观看上一章 一. 组合模式 引用 菜鸟教程里面的 组合 模式介绍: https://www.runoob.com/design-pattern/composite-pattern.html 组合模式&#xff0…

有多少运维配置防火墙忽略了长连接?

长连接的使用场景 当业务中客户端和服务器长时间无数据交互&#xff0c;空闲时间超过1800秒&#xff0c;会话会因超时被清除。后续客户端没有重新发起连接&#xff0c;直接发送控制报文时导致数据不通。常见于数据库连接。 1. 重点说明 以天为单位的会话超时需要开启长效会话比…

Android 进程间通信机制(六) 手写AIDL文件

阅读本篇文章前, 请先查看一下笔者之前的写的两篇博客文章: Android Service知识 和 Android AIDL使用 进程间通信涉及到客户端和服务端, 肯定有绑定服务的过程, 所以要阅读一下Android Service相关的知识, 跨进程通信的媒介aidl文件,我们也必须要了解怎么创建的,有什么规则…

【Jenkins】全网最详细的自动化测试

学习 Jenkins 自动化测试的系列文章 Robot Framework 概念Robot Framework 安装Pycharm Robot Framework 环境搭建Robot Framework 介绍Jenkins 自动化测试 1. Robot Framework 概念 Robot Framework是一个基于Python的&#xff0c;可扩展的关键字驱动的自动化测试框架。 它…

走进人工智能|GANs AI时代下的前卫艺术

前言&#xff1a; GANs的作用是以生成模型的形式学习数据分布&#xff0c;从而产生逼真的样本数据&#xff0c;可以应用于图像合成、风格转换、视频生成等领域。 文章目录 序言背景适用领域技术支持应用领域程序员如何学总结 序言 GANs&#xff08;生成对抗网络&#xff09;是…

测试为什么分白盒、黑盒、单元、集成测试?

一、为什么测试的概念这么多 一个软件项目就好比一部复杂的汽车&#xff0c;有很多零件&#xff0c;当每个零件生产完成后&#xff0c;就要测试零件是否存在质量问题。零件组成复杂的汽车后&#xff0c;我们还要测试汽车。比如著名的中保研&#xff0c;测试刹车&#xff0c;测…