首页 > 其他分享 >如何调整batch size和学习率之间的关系?

如何调整batch size和学习率之间的关系?

时间:2024-10-17 16:50:11浏览次数:8  
标签:old batch 学习 rate learning new size

一般来说,我们batch size 大一些,则learning rate也要大一些。且有一个数学关系,当我们改变batch_size的时候,可能遵循这样的规律:

newlearningrate = oldlearningrate × newbatchsize oldbatchsize {\text{newlearningrate}}={\text{oldlearningrate}} \times {\sqrt{\frac{{\text{newbatchsize}}}{{\text{oldbatchsize}}}}} newlearningrate=oldlearningrate×oldbatchsizenewbatchsize​

举例来说,原先别人的batch size 为128, learning rate为0.0005, 那么当我们把batch size改为1024时,则新的学习率有这样的推荐值:0.0005 * sqrt(1024/128) = 0.0005 * sqrt(8) = 0.001412

import math

def calculate_new_learning_rate(old_learning_rate, new_batch_size, old_batch_size):
    # 计算新的学习率
    new_learning_rate = old_learning_rate * math.sqrt(new_batch_size / old_batch_size)
    
    # 将新学习率转换为科学计数法,保留整数部分
    exponent = int(math.floor(math.log10(new_learning_rate)))
    coefficient = round(new_learning_rate / 10**exponent)
    new_learning_rate_str = f"{coefficient}e{exponent}"
    
    return new_learning_rate_str

# 示例
old_learning_rate = 5e-4
old_batch_size = 128
new_batch_size = 1024

# 调用函数计算新的学习率
new_learning_rate_str = calculate_new_learning_rate(old_learning_rate, new_batch_size, old_batch_size)
print(f"新的学习率为: {new_learning_rate_str}")
# 新的学习率为: 1e-3

本文参考

标签:old,batch,学习,rate,learning,new,size
From: https://blog.csdn.net/u014297502/article/details/142979220

相关文章

  • ContentSizeFitter
    新建在物体的Inspector面板中添加组件(AddComponent->ContentSizeFitter)演示介绍ContentSizeFitter内容大小适配器内容大小适配器充当布局控制器,可用于控制其自身布局元素的大小。查看实际自动布局系统的最简单方法是向带有文本组件的游戏对象添加内容大小适配器......
  • 2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理
    今天推进了关于约束以及多表查询的内容,下一步是事务以及关于连接数据库JDBC的学习。点击查看代码----约束--1.概念:--·约束是作用于列上的规则用于限制加入表的数据--·约束的存在保证了数据库中数据的正确性、有效性和完整性--2.约束的分类--非空约束NOTNULL:......
  • Tang Primer 25K学习记录
    TangPrimer25KTangPrimer25K是基于GW5A-LV25MG121所设计的一款极小封装的核心板(23x18mm),并配套全引脚引出(除MIPI高速脚外)的25KDock底板。(国产高云FPGA),作为学习使用,非常小巧,大家可以购买(底板的3d保护壳可以使用博主的,建议打印一个,因为fpga开发板这种海上比较脆弱,如果......
  • CSS的学习(二)
    本篇呢,我们接着学习CSS,浮动和定位是两者常用的布局方式,可以实现更加丰富和灵活的网页效果。 有实操代码和效果方便理解一、浮动CSS提供了三种传统布局方式(简单说,就是盒子如何进行排列顺序):普通流(标准流)浮动定位这三种布局方式都是用来摆放盒子的,盒子摆放到合适位置,布......
  • 元器件学习之--------运算放大器
    一、技术理论1、运放符号    1、同相输入端                3、反向输入端    5、电源正端          2、电源负端    4、输出端    运算放大器具有两个输入端和一个输出端,如图所示,其中标有“+”号的......
  • 前端学习1——HTML
    1Web标准的构成主要包括结构、表现和行为三个方面标准说明结构用于对网页元素进行整理和分类(身体)表现用于设置网页元素的版式、颜色、大小等外观样式(外观装饰)行为网页模型的定义及交互的编写(动作)2HTML基本结构标签每个网页都会有一个基本的结构标签(......
  • Flyte:打造无忧的生产级数据和机器学习工作流平台
    flyteFlyte:革新数据科学和机器学习工作流程......
  • TNN: 腾讯优图实验室和光影实验室开发的高性能、轻量级深度学习推理框架
    TNN简介TNN是由腾讯优图实验室和光影实验室联合开发的一款高性能、轻量级的深度学习推理框架。它在ncnn和Rapidnet的基础上,进一步加强了对移动设备的支持和性能优化,同时借鉴了业界主流开源框架的优点,具有良好的可扩展性和高性能。TNN已在腾讯多个应用中得到广泛应用,如手机QQ......
  • 人工智能、深度学习和机器学习教程:从入门到精通
    人工智能、深度学习和机器学习教程:从入门到精通人工智能(AI)、深度学习(DL)和机器学习(ML)是当今最热门的技术领域,正在深刻地改变着我们的生活和工作方式。本文将全面介绍这些技术的基础知识、主要算法和实践应用,帮助读者从入门到精通。人工智能概述人工智能是计算机科学的......
  • DeepLabCut: 基于深度学习的无标记动物姿态估计工具
    DeepLabCutDeepLabCut是一款强大的开源工具,用于对包括人类在内的所有动物进行无标记姿态估计。它采用深度学习技术,可以对用户自定义的特征进行精确跟踪和分析。以下是DeepLabCut的主要特点和功能:主要特点无标记跟踪:无需在动物身上贴附任何标记物,即可实现高精度的姿态估计。......