LORA学习笔记3——训练参数

训练步长

Step(步):模型训练时ai模型会根据标注生成一个图片,并与学习图片进行对比,通过对比的结果调整嵌入向量。这样的一个流程就被称为“一步”。

如果一个训练集中有50张图片,每张图片设定为要训练10次,所以训练完这一组数据集需要50*10=500步。

Epoch(轮):一个训练集里面的全部图片按照规定的训练次数训练完一次,被称之为训练完“一轮”。参考刚才的例子,500步就是该训练集的一轮所需要的步数。

max_train_epochs(最大训练轮数):通常我们使用这个概念来控制训练一个模型的总步数。模型训练的总步数=max_train_epochs*Epoch。比如刚才的例子中,一轮是500步,假设我们训练的最大轮数是10,那么训练的总步数就是500*10=5000步。

train_batch_size(训练批次大小):模型训练可以一次学习多个图片,如果将这个参数设置为8,那么训练时ai会一次训练8张图片,缩短训练所需要的时间。

学习率

学习率可以理解为ai学习时的强度。学习率过高会导致过拟合,学习率过低会导致欠拟合。

 过拟合:训练出的模型过于匹配训练数据,导致在新数据集中无法生成较好的新结果。在ai画图中的表现就是生成的图片过于和训练集中的图片相似,无法生成差异化的内容。

欠拟合:训练出的模型过于不匹配训练数据,导致新数据集中生成的结果与预期相差过大。反映在ai画图里就是生成的图片完全不像训练集里的图片。

在训练中通常过拟合的概率会大于欠拟合,因此学习率通常会设置在比较低的水平,通常用0.0001即可。

当训练的数据集较大时,需要设置较小的学习率。因为数据越多,损失曲面更复杂,在高学习率的情况下容易导致训练不稳定。

在训练中通常会增加学习率调度器,使训练过程中的学习率逐渐降低,可以保证后期避免过拟合。

网络维度

network rank/network dimension:网络秩,该值越大,从原始的矩阵中抽取出来的行列就越多,需要微调的数据量就越多,就可以容纳下更多的概念。

这个值会直接影响lora模型的大小,与模型大小是正相关关系。在训练三次元这种画面细节较多的模型时,通常会调高这个值;在训练二次元这种画面细节相对较少的模型时,通常会调低这个值。比如训练二次元人物,只需要设置为32就可以;如果要训练画风,就需要设置为更高的值。

network alpha:用于调节lora作用于原模型程度的参数。alpha和rank的比值等于“减弱权重程度”。alpha不超过rank,越接近于rank,则对原模型权重的影响越小。越接近于0,则对权重的微调作用越显著。通常会设置为rank的0.5~1倍之间。

性能参数

mixed_precision(混合精度):在深度学习中通常使用32位浮点数进行训练,但是实践证明训练ai模型不需要这么高的精度,因此通常可以设置为16位,可以节约大量的显存。

cache_latent(缓存图像latent):可以在学习前一次性地将图片缓存到显存里,后面再反复调用,可以有效提升训练速度。

xfomers:英伟达显卡的硬件级别优化,可以提升训练速度。

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

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

相关文章

CCF20231201——仓库规划

CCF20231201——仓库规划 代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n,m,a[1001][11],b[1001]{0};cin>>n>>m;for(int i1;i<n;i){for(int j1;j<m;j)cin>>a[i][j];}for(int i1;i<n;i){bool foundfals…

设计模式在芯片验证中的应用——模板方法

一、模板方法 模板方法(Template Method)设计模式是一种行为设计模式&#xff0c; 它在父类中定义了一个功能的框架&#xff0c; 允许子类在不修改结构的情况下重写功能的特定步骤。也就是模板方法定义了一组有序执行的操作&#xff0c;将一些步骤的实现留给子类&#xff0c;同…

把自己的垃圾代码发布到官方中央仓库

参考博客&#xff1a;将组件发布到maven中央仓库-CSDN博客 感谢这位博主。但是他的步骤有漏缺&#xff0c;相对进行补充 访问管理页面 网址&#xff1a;Maven Central 新注册账号&#xff0c;或者使用github快捷登录&#xff0c;建议使用github快捷登录 添加命名空间 注意&…

连接mysql的java代码

要在Java中连接MySQL数据库,你需要以下几个步骤: 导入MySQL JDBC驱动:在项目中添加MySQL JDBC驱动的依赖。如果你使用的是Maven,可以在pom.xml中添加依赖;如果使用的是Gradle,可以在build.gradle中添加依赖;如果不使用构建工具,需要手动下载驱动并添加到项目中。 编写J…

【Linux】进程通信实战 —— 进程池项目

送给大家一句话: 没有一颗星&#xff0c;会因为追求梦想而受伤&#xff0c;当你真心渴望某样东西时&#xff0c;整个宇宙都会来帮忙。 – 保罗・戈埃罗 《牧羊少年奇幻之旅》 &#x1f3d5;️&#x1f3d5;️&#x1f3d5;️&#x1f3d5;️&#x1f3d5;️&#x1f3d5;️ &a…

flink cdc mysql整理与总结

文章目录 一、业务中常见的需要数据同步的场景CDC是什么FlinkCDC是什么CDC原理为什么是FlinkCDC业务场景flink cdc对应flink的版本 二、模拟案例1.阿里云flink sql2.开源flink sql(单机模式)flink 安装安装mysql3.flink datastream 三、总结 提示&#xff1a;以下是本篇文章正文…

mac中文件夹怎么显示.git隐藏文件

1. 打开终端应用程序&#xff0c;然后进入到包含.git文件夹的目录&#xff0c;可以使用以下命令来显示隐藏文件和文件夹&#xff1a; defaults write com.apple.finder AppleShowAllFiles YES 2. 然后重启 Finder&#xff1a; killall Finder

kali基本扫描工具(自带)

免责声明:本文仅做技术交流与学习...请勿非法破坏... 详细用法: 命令 -h/百度/翻译 fping 用法 hostlist 文件里面为ip fping -a -q -f hostlist -a 只看存活的 fping -g 202.100.1.1 202.100.1.255 -a -q > Ahost 输出到Ahost文件上 nping nping -c 1 201.100.2.155-244 …

工具方法 - 如何在网上找资料

在查询USB相关的技术资料时&#xff0c;官网的文档中心里找到个spec的记录&#xff0c;但下载链接没有。然后在Google上搜索&#xff1a; fileytpe:pdf my_keyword 只找到一个收费的文档下载网站&#xff0c;这让我不开心。 于是在Yandex上搜了下&#xff0c;找到了两个网站可以…

香橙派AIpro使用SSH远程登录

香橙派AIpro可以连接HDMI显示器使用&#xff0c;也可以远程登录。这里采用MobaXterm软件远程登录开发板。 首先要使得控制电脑和香橙派开发板连接到同一个局域网&#xff0c;两者的IP地址能够ping通。在Windows 下可以使用MobaXterm 远程登录开发板&#xff0c;首先新建一个ss…

属于程序员的浪漫,一颗会跳动的心!!!

绘制一颗会跳动的心❤ 嘿嘿 可以说是程序员的专属浪漫了吧&#xff0c;就像点燃一颗LED灯一样&#xff1f;&#xff08;我瞎说的啊&#xff0c;大家别当真&#xff0c;我很菜的&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 程序就在下面啦&#xff0c;然…

hive结合Hbase实现实时数据处理和批量分析

问题背景 Hive主要设计为一个用于大数据集的批处理查询引擎&#xff0c;并不是为实时查询或实时数据更新而设计的。它主要用于执行数据摘要、查询和分析。因此&#xff0c;Hive本身不支持实时数据更新或实时查询&#xff0c;它更适合用于对大量数据进行批量处理和分析。 分析…

Java8Stream

目录 什么是Stream? IO流&#xff1a; Java8Stream&#xff1a; 什么是流&#xff1f; stream图解 获取流 集合类&#xff0c;使用 Collection 接口下的 stream() 代码 数组类&#xff0c;使用 Arrays 中的 stream() 方法 代码 stream&#xff0c;使用 Stream 中的…

重生之 SpringBoot3 入门保姆级学习(02、打包部署)

重生之 SpringBoot3 入门保姆级学习&#xff08;02、打包部署&#xff09; 1.6 打包插件1.7 测试 jar 包1.8 application.properties 的相关配置 1.6 打包插件 官网链接 https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-starte…

【Python】 XGBoost模型的使用案例及原理解析

原谅把你带走的雨天 在渐渐模糊的窗前 每个人最后都要说再见 原谅被你带走的永远 微笑着容易过一天 也许是我已经 老了一点 那些日子你会不会舍不得 思念就像关不紧的门 空气里有幸福的灰尘 否则为何闭上眼睛的时候 又全都想起了 谁都别说 让我一个人躲一躲 你的承诺 我竟然没怀…

自学动态规划—— 一和零

一和零 474. 一和零 - 力扣&#xff08;LeetCode&#xff09; 其实遇到这种还好说&#xff0c;我宁愿遇见这种&#xff0c;也不想遇见那些奇奇怪怪递推公式的题目。 这里其实相当背包要满足两个条件&#xff0c;所以我们可以将dp开成二维的&#xff0c;之后的操作&#xff0…

Kubernetes(K8S) 集群环境搭建指南

Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排平台&#xff0c;旨在自动化部署、扩展和管理容器化应用。K8S环境搭建过程比较复杂&#xff0c;涉及到非常多组件安装和系统配置&#xff0c;本文将会详细介绍如何在服务器上搭建好Kubernetes集群环境。 在学习…

C语言---求一个整数存储在内存中的二进制中1的个数--3种方法

//编写代码实现&#xff1a;求一个整数存储在内存中的二进制中1的个数 //第一种写法 /*int count_bit_one(unsigned int n) {int count 0;while (n )//除到最后余数是0&#xff0c;那么这个循环就结束了{//这个题就是可以想成求15的二进制的过程//每次都除以2&#xff0c;余数…

跟小伙伴们说一下

因为很忙&#xff0c;有一段时间没有更新了&#xff0c;这次先把菜鸟教程停更一下&#xff0c;因为自己要查缺补漏一些细节问题&#xff0c;而且为了方便大家0基础也想学C语言&#xff0c;这里打算给大家开一个免费专栏&#xff0c;这里大家就可以好好学习啦&#xff0c;哪怕0基…

面试题·栈和队列的相互实现·详解

A. 用队列实现栈 用队列实现栈 实现代码如下 看着是队列&#xff0c;其实实际实现更接近数组模拟 typedef struct {int* queue1; // 第一个队列int* queue2; // 第二个队列int size; // 栈的大小int front1, rear1, front2, rear2; // 两个队列的首尾指针 } MyS…