迭代过程:batch和epochs

2023-05-16

目录

引入

使用mini-batch的优点:(对比传统的梯度下降

更容易找到全局最优解

缺点:

要定义的两个超参数:

batch_size,

epochs

引入数据

TensorDataset

DataLoader


引入

对于上一篇代码,一般来说要实现多次迭代,则需要循环下面这几步

    zhat = net.forward(x)
    loss = loss_function(zhat,y.long())
    loss.backward()
    opt.step()
    opt.zero_grad()

问题在于,实际情况中数据量较大,所有数据都要一遍正向传播和反向传播消耗时间,计算量过大这里就采用深度学习入门级优化算法:小批量随机梯度下降 -- 每次迭代前都会从整体的样本中抽一批固定数目的样本组成批次(batch)B,并用B中的样本进行梯度计算,一减少样本量。

使用mini-batch的优点:(对比传统的梯度下降

更容易找到全局最优解

如果是每一次都带入全部数据训练,就意味着每次迭代过程的特征值是相同的,那么梯度方向只受到权重的偏导数的影响,这会使得梯度下降方向改变较小,容易落入局部最优点(如图)。而mini-batch每次使用的特征值是不同的也就意味这迭代过程中梯度方向还会受到特征值的影响,更容易找到全局最优点。

如图:

图中的随机梯度下降是最极端的情况:每一次只抽一个样本 

缺点:

 由上图可以直观的看到,迭代次数会变多

要定义的两个超参数:

batch_size,

要抽取的数据大小

epochs

先要知道:对于算法而言,如果一直学习同样的一个数据,会让它只执着与样本,失去一定的泛化能力(类似于机器学习中的过拟合)。但是对于mini-batch而言,每次迭代只学习了一小批数据,我们需要一个全体数据被学习了多少次,用epochs来控制

所以循环层数我们可以确定,由epochs做最外层循环,batch做内层循环

引入数据

TensorDataset

用来将特征张量和标签值打包,

from torch.utils.data import TensorDataset
import torch
a = torch.randn(size=(500,2,3,4))

b = torch.randn(size=(500,6,7))

c = torch.randn(size=(500,1))

print(TensorDataset(a,b,c)) # As long as the first dimension is equal,it can be marged.

for i in TensorDataset(a,b,c):
    print(i)
    break

print : <torch.utils.data.dataset.TensorDataset object at 0x7f8d6459d9a0>

合并的就是a的2,3,4.  b的6,7   c的1 

DataLoader

用来切割小批量的类

from torch.utils.data import TensorDataset,DataLoader
import torch
a = torch.randn(size=(500,2,3,4))

b = torch.randn(size=(500,6,7))

c = torch.randn(size=(500,1))

# print(TensorDataset(a,b,c)) # As long as the first dimension is equal,it can be marged.
# 
# for i in TensorDataset(a,b,c):
#     print(i)
#     break

data = TensorDataset(a,c)
data_set = DataLoader(data,
                      batch_size=120,
                      shuffle=True, # Whether to disturb the data before division?
                      drop_last=False # Discard the last batch?
                      )
for j in data_set:
    print(j)

就是切割刚刚的数据,按照规定好的大小

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

迭代过程:batch和epochs 的相关文章

  • IDEA 搭建项目卡在 Generating project in Batch mode

    配置File 61 gt Settings 61 gt maven 61 gt Runner中的VM Options 添加如下参数 DarchetypeCatalog 61 internal
  • STM32MCU量产工具:STM32 Batch Programmer

    写在最前面 由于本人从事嵌入式开发 xff08 STM32方向 xff09 xff0c 公司产品多数都为STM32芯片 xff0c 面对批量芯片烧录工作实在麻烦 xff08 未送寄焊厂烧录 xff09 xff0c 于是本人根据公司 同事及自
  • 深度学习 | 三个概念:Epoch, Batch, Iteration

    转自 xff1a https www jianshu com p 22c50ded4cf7 写在前面 xff1a 在训练神经网络的时候 xff0c 我们难免会看到Batch Epoch和Iteration这几个概念 曾对这几个概念感到模糊
  • 批量归一化:Batch Normalization层 原理+Pytorch实现

    一 BN层概念明晰 BN层存在的意义 xff1a 让较深的神经网络的训练变得更加容易 BN层的工作内容 xff1a 利用小批量数据样本的均值和标准差 xff0c 不断调整神经网络中间输出 xff0c 使整个神经网络在各层的中间输出的数值更加
  • 深入浅出Windows BATCH

    1 什么是Windows BATCH BATCH也就是批处理文件 xff0c 有时简称为BAT xff0c 是Windows平台上的一种可执行脚本 xff0c 与 nix Linux和Unix 上的Shell脚本和其他的脚本 xff08 P
  • dataset中shuffle()、repeat()、batch()用法

    import numpy as np import tensorflow as tf np random seed 0 x 61 np random sample 11 2 make a dataset from a numpy array
  • 训练神经网络中最基本的三个概念:Epoch, Batch, Iteration

    转载地址 xff1a https zhuanlan zhihu com p 29409502 原作者 xff1a Michael Yuan 作者主页 xff1a https www zhihu com people mikeyuan 今天让
  • raise ValueError(‘Expected input batch_size ({}) to match target batch_size ({}).‘

    raise ValueError Expected input batch size to match target batch size 记得在正向传播之前打印一下图片的尺寸 xff0c 这次没注意到图片其实都进来是 RGB 三通道的数据
  • 残差网络、Dropout正则化、Batch Normalization浅了解

    残差网络 为什么需要残差网络 残差网络的目的是为了解决深度神经网络在训练过程中遇到的退化问题 即随着网络层数的增加 训练集的误差反而增大 而不是过拟合 残差网络的优点有以下几点 残差网络可以有效地缓解梯度消失或爆炸的问题 因为跳跃连接可以提
  • 神经网络中epoch、batch、batch_size、epoch、iteration理解

    1 epoch 当一个完整的数据集通过神经网络一次并且返回一次的过程称为一个epoch 然而 当一个epoch对于计算机太过庞大时 就需要把它分成多个小块 2 batch 在不能将数据一次性通过神经网络的适合 就需要将数据集分成几个batc
  • 手撕/手写/自己实现 BN层/batch norm/BatchNormalization python torch pytorch

    计算过程 在卷积神经网络中 BN 层输入的特征图维度是 N C H W 输出的特征图维度也是 N C H W N 代表 batch size C 代表 通道数 H 代表 特征图的高 W 代表 特征图的宽 我们需要在通道维度上做 batch
  • windows批处理:路径以\结尾 + unix换行 + rem + %~dp0时会导致报错

    windows对unix和windows换行符都支持的 但是遇到一种情况对unix不支持 之前遇到过window10执行没问题 但到了win7却有问题 代码如下 set project dir name Lua515 rem dp0 aaa
  • Batch Normalization详解(原理+实验分析)

    Batch Normalization详解 原理 实验分析 1 计算过程 2 前向传播过程 3 反向传播过程 4 实验分析 4 1 实验一 验证有没有BatchNorm下准确率的区别 4 2 实验二 验证有没有BatchNorm noisy
  • 深度学习中epoch、batch、step、iteration等神经网络参数是什么意思?

    epoch 表示将训练数据集中的所有样本都过一遍 且仅过一遍 的训练过程 在一个epoch中 训练算法会按照设定的顺序将所有样本输入模型进行前向传播 计算损失 反向传播和参数更新 一个epoch通常包含多个step batch 一般翻译为
  • 机器学习中epoch和batch_size分别代表什么?

    首先 我们知道要划分数据集 通常分为训练集 验证集 测试集 在训练模型的时候 从训练集中一个一个取出来训练效率太慢 可以一次取一批来进行训练 batch size就是这一批数据的数量设置 1个epoch就是把训练集里面的所有数据都训练一遍
  • 根据文件夹修改时间自动打包ZIP

    Automatically package to zip file based on the modification time of the folder echo off set file dist for A in file do s
  • win10开机自动运行bat脚本

    windows10开机自动运行bat脚本 win r gpedit msc打开策略制 然后添加 如果你的bat文件的命令是启动其他文件 如下 启动其它程序 start xxx exe 启动vm虚拟机 chcp 65001 C Program
  • 利用Bat命令批量修改文件名

    因为科研需求 需要把文件名规范统一命名 整体思路 先获得原始文件名字 带后缀 再导到excel里搞好新名字 构建好Bat的ren函数 完成修改 具体措施 1 读取原本文件名称 在相应的文件目录下 新建一个文本文件 并且打开输入 dir b
  • 合批/批量渲染 (Batch)、实例化Instancing

    可以简单的理解为 批量渲染是通过减少CPU向GPU发送渲染命令 DrawCall 的次数 以及减少GPU切换渲染状态的次数 尽量让GPU一次多做一些事情 来提升逻辑线和渲染线的整体效率 但这是建立在GPU相对空闲 而CPU把更多的时间都耗费
  • 测试用例基础 12_02

    回顾 测试用例怎么写 测试点 不包含测试步骤 只有测试什么 只有测什么功能 预期的结果 为了提高作业的效率 测试用例只写测试点 直接写在Xmind 或者Excel 效率会比较高 面试的时候 就直接说测试点 是为了有限的时间 完整的测试用例

随机推荐

  • JDBC参数设置

    常用 JDBC 驱动名字和 URL 列表 ODBC driver sun jdbc odbc JdbcOdbcDriver jdbc odbc name 用 COM ibm db2 jdbc net DB2Driver 连接到 DB2 数据
  • Windows dos命令使用总结(持续更新)

    1 windows如何通过CMD命令结束某个端口的进程 xff1a netstat ano findstr 端口号tasklist findstr 进程PIDtaskkill PID 进程PID F windows常用命令 可可西 博客园
  • postgresql查询表元数据信息语句

    select tablename from pg tables where schemaname 61 39 public 39 and tablename like 39 table 39 order by tablename SELEC
  • SpringBoot 异常后更改响应状态码

    一 64 RestControllerAdvice和 64 ExceptionHandler拦截异常 package com lxk socket collector common import com lxk base bean Comm
  • linux进程kill命令关不掉

    1 Linux kill 命令用于删除执行中的程序或job 语法 xff1a kill s sigspec n signum sigspec pid jobspec or kill l sigspec kill s lt 信息名称或编号 g
  • linux tcpdump抓包命令使用详解

    一 抓包命令概述 作用 xff1a xff08 1 xff09 捕获网络协议包 xff08 2 xff09 分析网络协议包 分类 xff1a xff08 1 xff09 linux命令行工具 xff0c 如tcpdump xff08 2 x
  • wireshark抓包教程详解

    Wireshark软件安装 软件下载路径 xff1a wireshark官网 按照系统版本选择下载 xff0c 下载完成后 xff0c 按照软件提示一路Next安装 说明 xff1a 如果你是Win10系统 xff0c 安装完成后 xff0
  • docker打包流程常用方式

    完整的docker打包流程 把外网服务器上的docker搬到内网使用时 xff0c 报了两个错误 xff0c 外网容器到tar包都没问题 xff0c 在内网使用tar包的时候报了两个错误 cannot connect to the Dock
  • 5GC 网元AMF、SMF、UPF、PCF、UDM等介绍

    5GC 网元AMF SMF AUSF UPF PCF UDM NRF NSSF NEF介绍 1 AMF Access and Mobility Management Function xff0c 接入和移动性管理功能 xff0c 执行注册
  • 如何准备校招?

    秋招已经落尽尾声 xff0c 今天小牛想把自己的学习经验分享给大家 xff0c 避免大家多走弯路 1 首先需要确定自己想从事哪方面的工作 比如服务端开发 xff08 Java开发工程师 xff0c C 43 43 开发工程师 xff09 x
  • 5GC architecture N1、N2、N3、N4、N6等接口

    5GC architecture N1 N2 N3 N4 N6 N9 N26接口 N1接口 N1接口为UE和AMF间的信令面接口 N1是逻辑概念的接口 xff0c 不存在物理口 N1接口基于N2接口信令实现 N2接口 N2接口为 R AN和
  • FAQ:报红--maven本地有jar包仍从从远端下载

    问题 xff1a 最近编译项目 xff0c 发现有个模块依赖总是编译不过 xff0c 报无法download jar包 但是查看maven配置的远端仓库 xff0c 发现maven已不支持该jar包 但是本地确实存在 xff0c idea
  • SNMP(简单网络管理协议)详解

    一 简介 SNMP 简单网络管理协议 xff1a 专门用于在 IP 网络管理网络节点 xff08 服务器 工作站 路由器 交换机及HUBS等 xff09 的一种标准协议 xff0c 它是一种应用层协议 SNMP 使网络管理员能够管理网络效能
  • XXL-JOB分布式任务调度平台

    XXL JOB 是一个轻量级分布式任务调度平台 xff0c 其核心设计目标是开发迅速 学习简单 轻量级 易扩展 现已开放源代码并接入多家公司线上产品线 xff0c 开箱即用 Gitee 地址下载 xff1a https gitee com
  • 2万字详解,吃透 ES

    之前已经分享过Elasticsearch的使用和原理的知识 xff0c 由于近期在公司内部做了一次分享 xff0c 所以本篇主要是基于之前的博文的一个总结 xff0c 希望通过这篇文章能让读者大致了解Elasticsearch是做什么的以及
  • 手动回收Linux内存

    linux的内存分配是采用大页面的方式 xff0c 有可能会出现内存回收不及时导致系统卡住的情况 xff0c 这时候可以手工回收一下内存 执行 xff1a echo 1 gt proc sys vm drop caches 查看系统资源使用
  • spring-expression表达式详解

    一 概述 Spring Expression Language xff08 简称 SpEL xff09 是一个支持查询和操作运行时对象的强大的表达式 语言 贯穿着整个 Spring 产品组的语言 SpEL是单独模块 xff0c 只依赖于co
  • Docker容器整合wagon-ssh自动化部署SpringBoot工程

    一 前提条件 xff1a 机器上已经安装了docker 安装过程 准备部署的springboot的jar包Dockerfile文件部署脚本deploy sh升级脚本upgrade sh 二 准备Dockerfile 文件 创建一个Docke
  • TIME_WAIT和CLOSE_WAIT状态区别

    在服务器的日常维护过程中 xff0c 会经常用到下面的命令 xff1a netstat n awk 39 tcp 43 43 S NF END for a in S print a S a 39 它会显示例如下面的信息 xff1a TIME
  • 迭代过程:batch和epochs

    目录 引入 使用mini batch的优点 xff1a xff08 对比传统的梯度下降 更容易找到全局最优解 缺点 xff1a 要定义的两个超参数 xff1a batch size epochs 引入数据 TensorDataset Dat