pytorch:批训练(batch_training)

2023-10-30

一、什么是批训练?

批训练: 意思是把整套训练数据分成数个批次进行训练,每个批次从数据中选取 n_num(总数据)/n_batch(批次) 个数据,直到把整套数据训练完成。
举个例子,有10个输入训练数据,每个批次训练3个数据,这训练完成需要4个批次,第一次从[1,2,3,4,5,6,7,8,9,0]随机选取3个数据,batch_1=[2,5,9],第二次再从剩余的7个数据中选取,得到batch_2=[1,4,8],第三次又从剩余的4个数据中选取3个,得到batch_3=[4,6,0],数据中只剩余1个数据,那么batch_4=[7]。直到把整套数据都作为数据训练完成为止。

二、批训练有什么好处?

1、内存利用率提高了,大矩阵乘法的并行化效率提高。
2、跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
3、在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。

三、程序:

import torch
import torch.utils.data as data

# 创建数据
x = torch.linspace(1, 10, 10)
y = torch.linspace(10, 1, 10)

# 先转换成torch能识别的dataset
torch_dataset = data.TensorDataset(x, y)

# 把dataset放入DataLoader
loader = data.DataLoader(
    dataset=torch_dataset,
    batch_size=4,             # 每批提取的数量
    shuffle=True,             # 要不要打乱数据(打乱比较好)
    num_workers=2             # 多少线程来读取数据
)

if __name__ == '__main__':
    for epoch in range(3):    # 对整套数据训练3次
        for step, (batch_x, batch_y) in enumerate(loader):  # 每一步loader释放一小批数据用来学习
            # 训练过程

            # 打印数据
            print("epoch:", epoch, "step:", step, 'batch_x:', batch_x.numpy(), 'batch_y:', batch_y.numpy())

4、结果:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pytorch:批训练(batch_training) 的相关文章

随机推荐

  • AVS、MPEG-2、H.264 标准文档

    几年前 做过一些 AVS H 264 的编解码工作 收集了一点标准文档及开源代码 这些我都分享在前一个博客 http sep blog chinaunix net 由于该博客的文件分享都失效了 因此有不少童鞋找到这里联系上我 为了方便大家
  • vue中配置别名

    在根目录创建名为 jsconfig json 的文件 compilerOptions baseUrl paths src exclude node modules dist
  • 深度解析StringBuilder

    深度解析StringBuilder 基本介绍 1 StringBuilder 是一个可变的字符序列 此类提供一个与StringBuffer兼容的API 但不保证同步 StringBuilder 不是线程安全的 此类被设计用作StringBu
  • stable diffusion实践操作-图片生文字到图片

    本文专门开一节写 文字图片相关的内容 在看之前 可以同步关注 stable diffusion实践操作 正文 1 png 图片提取信息 SD可以从png图片中提取信息 然后在来生成图片 1 1 保存png 到liblib网站 下载png图片
  • IDEA在Web项目部署时没有Artifact选项的解决方法

    1 现象 使用Intellij IDEA配置Web项目时 如下图所示 选择Deployment后点击 没有出现Artifact选项 2 解决方法 1 在Intellij IDEA开发菜单栏中 选择 File gt Project Struc
  • python requests post和get请求,并把结果写入json文件中

    今天在分析网页的时候 发现需要利用requests请求 得到数据 然后这会经常用到 虽然简单 但是容易忘记 所以我这里记录一下我用的python requests的demo文件 post请求 import requests json hea
  • zabbix数据库添加主从同步

    zabbix数据库正常运行的情况下 做mysql主从同步添加从库操作 一 在从库主机上安装mysql 注 版本与主库master一致 1 1 创建用户 groupadd mysql useradd r g mysql mysql 1 2 上
  • 服务器系列和酷睿系列,至强cpu与酷睿两个系列之间有什么区别?

    很多朋友选购英特尔处理器时 会纠结于酷睿与至强两个系列之间就 不知如何选择 标致左酷睿 右至强 酷睿系列CPU如i3 i5 i7是我们一般消费者最为熟悉的 它也是针对大部分家用桌面级消费者开发的中高端处理器 当然也包括低端的G系列的赛扬处理
  • (第一章)嵌入式linux之常用汇编指令

    1 处理器内部数据传输指令 数据传输指令分为 一般寄存器间的数据传输或者 特殊寄存器与一般寄存器间的数据传输 数据传输常用的指令有三个 MOV MRS 和 MSR 用法示例 1 MOV 指令 MOV R0 R1 将寄存器 R1 中的数据传递
  • 基于百度飞桨PaddlePaddle和PARL复现PPO强化学习算法

    文章目录 一 PPO训练效果展示 Mujoco HalfCheetah v2 二 策略优化算法发展回顾 三 PPO 算法论文阅读 1 Introduction 2 Background Policy Optimization 2 1 Pol
  • R语言使用RMySQL连接及读写Mysql数据库

    简单说下安装过程 一般不会有问题 重点是RMySQL的使用方式 系统环境说明 Redhat系统 Linux 460 42 6 32 431 29 2 el6 x86 64 系统编码 LANG zh CN UTF 8 中文UTF 8格式 my
  • Access Token是做什么的

    我们在访问很多大公司的开放 api 的时候 都会发现这些 api 要求传递一个 access token 参数 这个参数是什么呢 需要去哪里获取这个 access token 呢 access token 是在 Oauth2 0 协议中 客
  • ag-Grid的基本用法一(表格列的定义)

    最近在研究基于angular2 的表格的用法 发现一种非常好用的表格 就是ag grid ag grid不仅对angular1 x有支持 还支持react vue等目前主流的前端框架 这里我们只是对angular2 中的ag grid进行讲
  • 朴素贝叶斯分类器:R语言实现

    span style font family none background color rgb 255 255 255 span span style font family none background color rgb 255 2
  • flask中request.args和request.form区别

    app route ajaxget1 def ajax test get server name request args get server name server ip request args get server ip print
  • 前端的反单引号语法之`${}`

    es6中新增的字符串方法 可以配合反单引号完成拼接字符串的功能 1 反单引号怎么打出来 将输入法调整为英文输入法 单击键盘上数字键1左边的按键 2 用法 step1 定义需要拼接进去的字符串变量 step2 将字符串变量用 包起来 再写到需
  • c语言打开文本有什么作用,c语言文件打开方式有哪些

    c语言文件打开方式有哪些 ANSI C规定文件打开用函数fopen 关闭为fclose 1 调用方式通常为 FILE fp fp fopen 文件名 打开方式 2 参数说明 文件名 形如 myfile dat F data myfile d
  • 数据序列相关性-ACF,PACF和CCF

    引言 最近写论文关于预测的特征选择遇到一些问题 想把自己查询学习到的东西整理记录一下 理一理头绪 希望能加深自己对这些东西的理解 首先介绍引入几个概念 自相关函数 autocorrelation function ACF 偏自相关函数 pa
  • OLED透明屏全贴合技术:未来显示技术的突破性创新

    在现代科技发展的浪潮中 OLED透明屏全贴合技术以其独特的优势和无限的应用前景引起了广泛的关注 在这篇文章中 尼伽将深入探索OLED透明屏全贴合技术 介绍其优势和特点 并展望其在不同领域的应用前景 一 OLED透明屏全贴合技术 OLED透明
  • pytorch:批训练(batch_training)

    一 什么是批训练 批训练 意思是把整套训练数据分成数个批次进行训练 每个批次从数据中选取 n num 总数据 n batch 批次 个数据 直到把整套数据训练完成 举个例子 有10个输入训练数据 每个批次训练3个数据 这训练完成需要4个批次