deepfacelab中文网

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

关于loss值的准确性,希望大家给点建议

[复制链接]

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

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




首先有这么一出是因为我观察到模型相对于素材的loss受诸多因素(训练的持续下降、训练的loss梯度波动、翻转、放大、缩小等等等)的影响存在些许变数,


第一种计算方式我已经观察过了,后续采取的是根据计算结果的平均值,挑选出来的素材是loss越低的素材往往都是偏灰或模糊的,


loss越高的素材则五花八门,色彩极端、大角度、模糊等等都有


第二种计算方式则是我刚刚想出来的,还没观察验证



PS:初学python,望大佬指点...



第一种计算方式:
    for filename, losses in existing_data.items():
        while len(losses) > 1:  # 确保列表中有多个损失值
            max_loss = max(losses)
            min_loss = min(losses)
            if max_loss - min_loss >= 0.1:
                losses.remove(max_loss)
            else:
                break  # 如果最大和最小损失值之差小于0.1,退出循环


这里我用了loss导出的日志中同一个素材的所有loss的最大值减去最小值,如果它们的值相差大于等于0.1就该值,用于排除波动因素的影响




   
第二种计算方式:



for filename, losses in existing_data.items():
2
    # 如果损失值列表为空,则跳过
3
    if not losses:
4
        continue
5
   
6
    # 如果损失值列表中只有一个损失值,则保留该值
7
    if len(losses) == 1:
8
        continue
9
   
10
    # 循环移除最大值和最小值相差超过0.2的损失值
11
    while True:
12
        max_loss = max(losses)
13
        min_loss = min(losses)
14
        if max_loss - min_loss > 0.2:
15
            losses.remove(max_loss)
16
        else:
17
            break  # 如果最大和最小损失值之差不超过0.2,退出循环
18
   
19
    # 计算损失值列表的平均值
20
    average_loss = sum(losses) / len(losses)
21
   
22
    # 移除与平均值相差超过0.05的损失值
23
    losses[:] = [loss for loss in losses if abs(loss - average_loss) < 0.05]

这里我用了loss导出的日志中同一个素材的最大值和最小值之差如果超过0.2则删除最大值直至不存在相差(排除抽风或者炸丹干扰),然后再计算所有loss的平均值,如果单个loss的值相差大于等于0.05,就删除该loss值,用于排除波动因素的影响



单选投票, 共有 4 人参与投票

距结束还有: 955 天7 小时23 分钟

您所在的用户组没有投票权限
回复

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-9 21:52:45 | 显示全部楼层
编辑排版好好的,一发出来就这个鬼样子
回复

使用道具 举报

0

主题

20

帖子

644

积分

高级丹师

Rank: 5Rank: 5

积分
644
发表于 2024-9-9 23:09:37 | 显示全部楼层
黑色背景显眼,哈哈哈
回复

使用道具 举报

13

主题

1038

帖子

1万

积分

高级丹圣

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

积分
12433
发表于 2024-9-9 23:37:14 | 显示全部楼层
能换成白底黑字吗。。。这花里胡哨的。。看不下去
回复

使用道具 举报

3

主题

31

帖子

251

积分

初级丹师

Rank: 3Rank: 3

积分
251
发表于 2024-9-10 00:26:13 | 显示全部楼层
woc,python大佬,膜拜
回复

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-10 01:07:38 | 显示全部楼层
seancai110 发表于 2024-9-9 23:37
能换成白底黑字吗。。。这花里胡哨的。。看不下去

改了一下,本来编辑的好好的,一发出来就变了
回复

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-10 01:08:48 | 显示全部楼层
TGGYYDS 发表于 2024-9-10 00:26
woc,python大佬,膜拜

新人,初学者,只是训练中遇到了麻烦,就自己琢磨
回复

使用道具 举报

7

主题

873

帖子

5927

积分

高级丹圣

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

积分
5927

万事如意节日勋章

发表于 2024-9-10 04:05:13 | 显示全部楼层
我的建议是做一个自动挑选素材的东西,也就是优化角度排序里面的最后两个。按角度和表情每个角度范围自动选出n个表情和细微角度尽量不一致的素材。手动挑选太累了。(给个思路:取角度dfl应该就有现成代码,表情就取标记点计算上下眼皮和上下唇高度和唇角距离)
高loss现在感觉倒不是那么重要了,只要保证素材无误,高loss素材差不多相当于鸡群里的仙鹤或者仙鹤里的鸡,当应用场景是鸡并且99%的素材都是鸡的时候,一个劲儿关注那少数几个仙鹤倒是有点舍近求远的感觉。反之如果应用场景是仙鹤但是99%的素材都是鸡,这时候需要关注的是怎么收集更多仙鹤的素材替换鸡而不是拿现有鸡群里的廖廖几只仙鹤反复研究。
回复

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
 楼主| 发表于 2024-9-10 05:55:50 | 显示全部楼层
lknet 发表于 2024-9-10 04:05
我的建议是做一个自动挑选素材的东西,也就是优化角度排序里面的最后两个。按角度和表情每个角度范围自动选 ...

你离题了,我不觉得loss高就应该删掉,不应该因为难练就不练了,我的素材太多了,经过去重去相似度之后还是有很多,所以按范围分别挑出来看看有没有模糊的或者特征点错误的

至于你说的这个按角度及同一角度下五官位置(表情)挑选唯一性素材的想法,实则难度不低,光影色彩其实也是一个很重要的素材组成部分,我有时间会去了解一下
回复

使用道具 举报

21

主题

266

帖子

3426

积分

高级丹圣

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

积分
3426

万事如意节日勋章

QQ
发表于 2024-9-11 04:41:25 | 显示全部楼层
奇奇怪怪的ID 发表于 2024-9-10 05:55
你离题了,我不觉得loss高就应该删掉,不应该因为难练就不练了,我的素材太多了,经过去重去相似度之后还 ...

挑选素材就是光影,表情,角度。一起搞比较难可以尝试分开搞
回复

使用道具 举报

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

GMT+8, 2024-10-24 23:19 , Processed in 0.105032 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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