deepfacelab中文网

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

改了点小东西,不知道结果是好是坏

[复制链接]

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-12 07:05:40 | 显示全部楼层 |阅读模式
星级打分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN  参与人数:0  我的评分:未评
本帖最后由 奇奇怪怪的ID 于 2024-9-12 10:29 编辑

夜班闲着无聊,对家里的模型不放心就远程看了下(经常炸丹),结果让我观察到一件揪心的事,



就是loss现在48小时才下降0.004,有种绝望感从心头起...


我就想啊,怎么才能更可观的实现降幅呢,


我想到了 @wtxx8888 移植MVE的loss周期训练功能,


这个功能我看了源代码,是通过用户设定周期(就是多少次迭代),然后功能函数记录每一次迭代的损失,

当满足用户设定周期后,计算得出周期内loss最高的样本提取出来再训练一遍,


这个功能对我来说,相当棒!解决了不同素材本身的loss值不一样,相同的训练中loss更高的往往需要更多训练才能达到平均水平,



题外话:原版是一个轮次一个轮次的训练下去的(Epoch),也就是如果纯扭曲的话,每张的图的训练次数都是一样,除非你中间关闭dfl又重开


这个功能能让loss下降的更加平滑,但是我前面说的是希望更加可观,

于是我对这段代码进行了一捏捏的改动


for _ in range(50):
                    src_loss, dst_loss = self.src_dst_train(target_src, target_src, target_srcm, target_srcm_em, target_dst, target_dst, target_dstm, target_dstm_em)



改动的不多,只是将周期内loss最高的样本提取出来再训练50遍!


对训练还是有些影响的,比如迭代次数会变得缓慢,效果会不会更好还有待验证


我对比了改动前后的预览图,虽然不是相同素材,但是有个明显的变化


改动前:


b342d53d4d1ec41921164abf31e3c6df.png

改动后:

干!两张图居然限制今天上传附件的大小

这个图明天再补,反正帖子也没什么人看

总之就是loss的趋势曲线图变得更加跌宕起伏了


ps:这篇算日记,不用讨论,指指点点多过指点




回复

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-12 07:07:35 | 显示全部楼层
这个帖纯水贴
回复 支持 反对

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-12 07:50:45 | 显示全部楼层
本帖最后由 奇奇怪怪的ID 于 2024-9-12 07:54 编辑
DFL小白02 发表于 2024-9-12 07:42
根本不需要这么麻烦,只需要导出loss值,看到高loss的图自己复制几次,这样训练频度自然增加了,还不会像高 ...

这个功能并不影响迭代速度,你看到的迭代时间增加其实只是(迭代+复训)的叠加时间,只是模型不会记录为两次迭代罢了

至于你说复制几次,这东西没有定数的,你现在是loss高,随着这种做法的训练后降低了呢,后面怎么办


回复 支持 反对

使用道具 举报

32

主题

235

帖子

2407

积分

初级丹圣

Rank: 8Rank: 8

积分
2407
发表于 2024-9-12 07:42:14 | 显示全部楼层
根本不需要这么麻烦,只需要导出loss值,看到高loss的图自己复制几次,这样训练频度自然增加了,还不会像高loss复训那样影响迭代速度。前面看你做了预览图显示loss值的那个感觉不错,可现在也没看到成品呢,不知道你在搞啥奇怪的东西
回复 支持 反对

使用道具 举报

2

主题

34

帖子

383

积分

初级丹师

Rank: 3Rank: 3

积分
383
发表于 2024-9-12 08:07:10 | 显示全部楼层
我当初就有在说wtxx8888补丁,只是那个补丁可能就是加强每个周期内的最高loss,而你是想强化训练全局最高loss,让我们期待一下吧
回复 支持 反对

使用道具 举报

32

主题

235

帖子

2407

积分

初级丹圣

Rank: 8Rank: 8

积分
2407
发表于 2024-9-12 09:05:32 | 显示全部楼层
奇奇怪怪的ID 发表于 2024-9-12 07:50
这个功能并不影响迭代速度,你看到的迭代时间增加其实只是(迭代+复训)的叠加时间,只是模型不会记录为两 ...

反正我是把loss高的,比如loss高于0.3的,训练中期统一导出来,而不是只复训每周期loss最高那个,训练频度自己定,差不多了自己再调呗,这不是自己决定的?比你这样筛漏掉很多漏网之鱼强很多啊
回复 支持 反对

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-12 09:59:53 | 显示全部楼层
本帖最后由 奇奇怪怪的ID 于 2024-9-12 10:08 编辑
DFL小白02 发表于 2024-9-12 09:05
反正我是把loss高的,比如loss高于0.3的,训练中期统一导出来,而不是只复训每周期loss最高那个,训练频 ...

首先,我不知道你说的你把loss高的挑出来中期训练是个怎么挑出来,然后你又是怎么在中期处理素材拿来专训的,

然后你也看过我前面的帖子,按理说你应该知道我能够挑选出素材相对模型的loss损失高低,然后你现在又说我这样筛会漏掉很多漏网之鱼,这我就接受不了了,

然后,我说的是随着训练素材相对模型的loss损失逐步的降低,原本高的现在变成相对低的了,你跟我说自己根据loss导出再复制几份相同素材丢进去训练,模型学好后把相同的删了再把相对较高复制几份进去,是不是10万的dst经过n次重复动作加到20万去?


既然我现在可以在确保错图不存在的情况下,让模型自己训练并达到相同的方式及效果,我为什么自己分n次去手动干哪些蠢事?为了迭代数好看?为了迭代时间好看?

再最后,经过几次几个帖跟你的沟通,感觉沟通不了,懂?
回复 支持 反对

使用道具 举报

9

主题

188

帖子

3640

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
3640
QQ
发表于 2024-9-12 10:25:30 | 显示全部楼层
请问这个能显示loss的是什么版本呢?
回复 支持 反对

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-12 10:26:20 | 显示全部楼层
yxyao 发表于 2024-9-12 10:25
请问这个能显示loss的是什么版本呢?

原版1120
回复 支持 反对

使用道具 举报

0

主题

37

帖子

661

积分

禁止访问

积分
661
发表于 2024-9-12 10:30:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

GMT+8, 2024-10-25 01:21 , Processed in 0.102761 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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