deepfacelab中文网

 找回密码
 立即注册(仅限QQ邮箱)
查看: 2328|回复: 7

神经网络训练三个概念(Epoch,Batch,Iteration)和图片数量选择

[复制链接]

15

主题

121

帖子

1170

积分

初级丹圣

Rank: 8Rank: 8

积分
1170
 楼主| 发表于 2023-3-2 21:09:08 | 显示全部楼层 |阅读模式
本帖最后由 werran 于 2023-3-2 21:12 编辑

在保证同等质量的情况下,图片越多越好,图片少非常容易出现过拟合的情况,尤其是lora模型高权重的情况下。而且可用的角度很少。


比如同样训练的总次数,20张图片训练50次,肯定没有50张图片训练20次好。

网传的40-100张图片,只是能用,想要达到像(高权重),角度多,高质量图片数量一定要多。
其实这个和AI换脸的图库是一个道理,重复大量的图片用处不大,其实就等于lora把少量图片训练很多次。

在我的实验中,同样训练的总次数,100张图训练的效果比500张图差的很多。




总结下训练神经网络中最最基础的三个概念:Epoch(训练多少轮), Batch(每次输入网络样本的个数), Iteration(迭代次数)。


1.名词解释[color=rgba(0, 0, 0, 0.75)][td]
名词定义
Epoch使用训练集的全部数据,对模型进行一次完整训练,称之为“一代训练”
Batch使用训练集中的一小部分样本,对模型权重进行一次反向传播的参数更新,这一小部分样本被称为“一批数据”
Iteration使用一个Batch数据,对模型进行一次参数更新的过程,称之为“一次训练”

  • epoch:训练时,所有训练数据集都训练过一次。

  • batch_size:在训练集中选择一组样本用来更新权值。1个batch包含的样本的数目,通常设为2的n次幂,常用的包括64,128,256。 网络较小时选用256,较大时选用64。

  • iteration​:训练时,1个batch训练图像通过网络训练一次​(一次前向传播+一次后向传播),每迭代一次权重更新一次;测试时,1个batch测试图像通过网络一次​(一次前向传播)。所谓iterations就是完成一次epoch所需的batch个数


2.换算关系

Number of batches = Training setsize​ / Batchsize





梯度下降方式Training set sizeBatch sizeNumber of batches
BGDNN1
SGDN1N
Mini-Batch SGDNBN/B+1


实际上,梯度下降的几种方式的根本区别就在于上面公式中的 Batch Size不同。

*注:上表中 Mini-Batch 的 Batch 个数为 N / B + 1 是针对未整除的情况。整除则是 N / B。

3.示例

CIFAR10 数据集有 50000 张训练图片,10000 张测试图片。现在选择 Batch Size = 256 对模型进行训练。

每个 Epoch 要训练的图片数量:50000
训练集具有的 Batch 个数:50000 / 256 = 195 + 1 = 196
每个 Epoch 需要完成的 Batch 个数:196
每个 Epoch 具有的 Iteration 个数:196
每个 Epoch 中发生模型权重更新的次数:196
训练 10 代后,模型权重更新的次数:196 * 10 = 1960

不同代的训练,其实用的是同一个训练集的数据。第 1 代和第 10 代虽然用的都是训练集的五万张图片,但是对模型的权重更新值却是完全不同的。因为不同代的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。




回复

使用道具 举报

5

主题

189

帖子

2334

积分

版主

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
2334

见习版主勋章优质版主勋章

发表于 2023-3-3 10:23:36 | 显示全部楼层
总结的很棒!差别不大的素材确实意义不大,最好找有差距的素材
AI绘画讨论交流QQ群748167404
回复 支持 反对

使用道具 举报

1

主题

99

帖子

552

积分

高级丹师

Rank: 5Rank: 5

积分
552
发表于 2023-3-10 12:26:25 | 显示全部楼层
刚好不太懂,来学习下
回复 支持 反对

使用道具 举报

9

主题

75

帖子

1168

积分

初级丹圣

Rank: 8Rank: 8

积分
1168
发表于 2023-3-10 13:04:08 | 显示全部楼层
就需要学习这种技术贴,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

27

帖子

224

积分

初级丹师

Rank: 3Rank: 3

积分
224
发表于 2023-4-27 10:17:29 | 显示全部楼层
角度全的情况下,几十张素材也可以,如果是相似的图片多了反而容易过拟合.数据集不够的情况下可以通过增加正则化规则,适当提高alpha值,降低unet学习率,用adamw的优化器或者调整调度器以及调度器的参数来解决过拟合的问题.所以数据集数量的多少与过拟合并不是非常强关联的关系.
回复 支持 反对

使用道具 举报

3

主题

28

帖子

211

积分

初级丹师

Rank: 3Rank: 3

积分
211
发表于 2023-5-9 08:02:51 | 显示全部楼层
一张图片一个人是不是就是最好的?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

25

积分

初级丹童

Rank: 1

积分
25
发表于 2023-8-25 16:14:41 | 显示全部楼层
为什么图片少,会导致模型过拟合;理论上数据量越少,不是导致欠拟合嘛。
回复 支持 反对

使用道具 举报

0

主题

25

帖子

185

积分

高级丹童

Rank: 2

积分
185
发表于 2023-9-1 16:05:08 | 显示全部楼层
前来学习一下
回复 支持 反对

使用道具 举报

QQ|Archiver|手机版|deepfacelab中文网 |网站地图

GMT+8, 2024-5-15 04:55 , Processed in 0.086640 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表