7 pytorch DataLoader, TensorDataset批数据训练方法

前言

本文主要介绍pytorch里面批数据的处理方法,以及这个算法的效果是什么样的。具体就是要弄明白这个批数据选取的算法是在干什么,不会涉及到网络的训练。

from torch.utils.data import DataLoader, TensorDataset

主要实现就是上面的数据集和数据载入两个类来实现该算法功能,这里只要求会调用接口就够了。

一、生成数据集

import torch
from torch.utils.data import DataLoader, TensorDataset
# 准备数据集与定义batch_size
batch_size = 8
x = torch.linspace(1,10,10)
y = torch.linspace(10,1,10)
print(x)
print(y)

输出:
在这里插入图片描述

二、将训练数据进行batch处理

# 将训练数据放入torch的数据集
train_dataset = TensorDataset(x, y)
# 载入batch批次选取数据规则
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True,   # True表示每一个epoch都打乱抽取num_workers=2   # 定义工作线程个数)

三、epoch训练

# 训练模型
epochs = 3
for epoch in range(epochs):# 每一个epoch表示将整个数据集所有数据都训练一遍for step,(batch_x, batch_y) in enumerate(train_loader):# training......# 这里用enumerate是为了让你更加情况观察,batch的逻辑是怎么样的# 实际中只要  for batch_x,batch_y in train_loader就可以了print('Epoch:',epoch,'| Step:',step,'| batch x:',batch_x.data.numpy(),'| batch y:',batch_y.data.numpy())
# 测试模型(略)

输出:
在这里插入图片描述
【注】:可以看到每一个epoch将所有样本点都涉及到了一次,并且还是打乱顺序了的。
下面看看将shuffle=False不打乱顺序会发生什么:
在这里插入图片描述
【注】:可以看到每一个epoch,都是相同的结果,可想而知这样训练效果肯定没有打乱的好。
注意到,上半batch=5,恰好将样本总数10均分为2分,那么要是不能均分会发生什么,下面将batch=8,看看会发生什么。
在这里插入图片描述
可以看到直接将不够的组就直接剩下的了。

总结

后面我们会经常用到这种batch和epoch的训练方法。

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

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

相关文章

web server apache tomcat11-02-setup 启动

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

pdf做批注编辑工具 最新pdf reader pro3.3.1.0激活版

PDF Reader Pro是一款功能强大的PDF阅读和编辑工具。它提供了多种工具和功能,帮助用户对PDF文档进行浏览、注释、编辑、转换和签名等操作。以下是PDF Reader Pro的一些主要特色: 最新pdf reader pro3.3.1.0激活版下载 多种查看模式:PDF Reade…

STM32 PB3 PB4 无法作为 GPIO 使用解决办法

如下所示,PA13 PA14 PB3 PB4 PB5, 默认是JTAG SWD的 PIN, 需要引脚ReMap 才能作为GPIO 使用。 HAL库解决办法 // __HAL_AFIO_REMAP_SWJ_ENABLE(); //Full SWJ (JTAG-DP SW-DP):// __HAL_AFIO_REMAP_SWJ_NONJTRST(); //Full SWJ (JTAG-DP SW-DP) but without NJTR…

【代理模式】静态代理-简单例子

在Java中,静态代理是一种设计模式,它涉及到为一个对象提供一个代理以控制对这个对象的访问。静态代理在编译时就已经确定,代理类和被代理类会实现相同的接口或者是代理类继承被代理类。客户端通过代理类来访问(调用)被…

认识异常(1)

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&a…

计算机网络:MAC地址 IP地址 ARP协议

计算机网络:MAC地址 & IP地址 & ARP协议 MAC地址IP地址ARP协议 MAC地址 如果两台主机通过一条链路通信,它们不需要使用地址就可以通信,因为连接在信道上的主机只有他们两个。换句话说,使用点对点信道的数据链路层不需要使…

开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException:

开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException: Caused by: java.lang.ClassNotFoundException: com.baomidou.mybatisplus.extension.plugins.MybatisPlusInter1 分析问题 控制台报错说明我们引入的 mybatis-plus 的依赖里找不到com.baom…

【verilog 设计】 reg有没有必要全部赋初值?

一、前言 在知乎发现“reg有没有必要全部赋初值”这个问题,与自己近期对Verilog reg的进一步学习相契合,此文对这个问题进行总结。 二、reg的初值赋值方式 就语法意义赋初值而言,就是在声明reg时对其赋值。在工程中,对于数字系…

【Windows】GPU、CUDA、cuDNN、Pytorch、Python知识总结

文章目录 显卡GPUCUDACUDA ToolkitCUDA SamplesCUDA DriverCUDA Toolkit和CUDA Driver版本的对应CUDA Driver和CUDA Runtime的区别nvcc和nvidia-smi的区别cuDNN查看GPU信息nvidia-smi(Driver版)NVIDIA控制面板nvcc -V或nvcc --version(runtime版)报错:nvcc 不是内部或外部…

数字化转型-工具变量数据集

01、数据介绍 数字化转型是指企业或个人利用数字技术,如大数据、云计算、人工智能等,对其业务流程、运营模式、决策方式等进行全面、深入的变革,以提高效率、降低成本、提升质量、增强竞争力。在这个过程中,工具变量扮演着至关重…

手写SpringBoot项目所使用的xxl-job分布式任务调度平台的starter

手写SpringBoot项目所使用的xxl-job分布式任务调度平台的starter 要将上述代码抽离成一个独立的 Spring Boot Starter,您需要创建一个新的 Maven 项目,并按照以下步骤进行操作: 创建 Maven 项目: 使用 IDE 或命令行创建一个新的 …

JVM虚拟机(九)如何开启 GC 日志

目录 一、引言二、开启 GC 日志三、解析 GC 日志四、优化建议 一、引言 在 Java 应用程序的运行过程中,垃圾收集(Garbage Collection,简称 GC)是一个非常重要的环节。GC 负责自动管理内存,回收不再使用的对象所占用的…

zabbix 自动发现与自动注册 部署 zabbix 代理服务器

zabbix 自动发现(对于 agent2 是被动模式) zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。1.确保客户端…

一次配置Docker环境的完整记录

一次配置Docker环境的完整记录 Docker环境搭建报错与解决报错一报错二报错三 Docker环境搭建 本节介绍了一次配置docker环境的完整记录: 编写Dockerfile文件: FROM pytorch/pytorch:1.10.0-cuda11.3-cudnn8-develRUN rm /etc/apt/sources.list.d/cuda.l…

mfc 带有复选框的ListBox

mfc 带有复选框的 ListBox 效果: 添加 ListBox 控件 从工具箱拖拽 ListBox 控件到窗口上,并设置属性: 包含字符串:true所有者描述:Fixed 给ListBox添加控制变量 添加完后,将m_list_box的类型使用CC…

Qt+vstudio2022的报错信息积累

从今天开始记录一下平常开发工作中的报错记录,后续有错误动态补充! 报错信息:【MSB8041】此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。 解决: 背景:换…

uniapp--登录和注册页面-- login

目录 1.效果展示 2.源代码展示 测试登录 login.js 测试请求 request.js 测试首页index.js 1.效果展示 2.源代码展示 <template><view><f-navbar title"登录" navbarType"4"></f-navbar><view class"tips"><…

通俗易懂降维理解------SIFT【大白话版】!!!

SIFT&#xff08;尺度不变特征变换&#xff09;是一种在计算机视觉中用来发现图像中特定点&#xff08;特征点&#xff09;并能够精确描述这些点的方法&#xff0c;这样即使在图像的大小、角度或光线变化后&#xff0c;这些点仍然可以被识别和匹配。简单来说&#xff0c;SIFT帮…

图数据库Neo4J入门——Neo4J下载安装+Cypher基本操作+《西游记》人物关系图实例

这里写目录标题 一、效果图二、环境准备三、数据库设计3.1 人物节点设计3.2 关系设计 四、操作步骤4.1 下载、安装、启动Neo4J服务4.1.1 配置Neo4J环境变量4.1.2 启动Neo4J服务器4.1.3 启动Ne04J客户端 4.2 创建节点4.3 创建关系&#xff08;从已有节点创建关系&#xff09;4.4…

PhpStorm2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 PhpStorm是由JetBrains公司开发的一款商业的PHP集成开发环境&#xff08;IDE&#xff09;&#xff0c;深受全球开发人员的喜爱。它旨在提高开发效率&#xff0c;通过深刻理解用户的编码习惯&#xff0c;提供智能代码补全、快速导…