ClassSR
ClassSR copied to clipboard
loss权重的相关问题
您好,我对您的工作非常感兴趣。
我注意到您的模型在训练分类器的时候设置的loss权重 l1 : class : avg 是 2000:1:6 。我想请问这部分是怎么设置的。其次,我想请教一下在训练过程中,添加权重后的各个损失的比例要接近1:1:1还是在l1的比重更大呢?
期待您的回复,感谢!
保证这些loss的值在一个水平上(一个数量级上),比重可以根据具体情况调整,在支撑文件里有相关实验
您好,在代码中定义的class loss和average loss为
# class loss
n = len(type_res)
m = len(type_res[0]) - 1
type_all = type_res
loss = 0
for i in range(n):
sum_re = abs(type_all[i][0] - type_all[i][1]) + abs(type_all[i][0] - type_all[i][2]) + abs(
type_all[i][1] - type_all[i][2])
loss += (m - sum_re)
return loss / n
# average loss
n = len(type_res)
m = len(type_res[0])
type_all = type_res
sum1 = 0
sum2 = 0
sum3 = 0
for i in range(n):
sum1 += type_all[i][0]
sum2 += type_all[i][1]
sum3 += type_all[i][2]
return (abs(sum1 - n / m) + abs(sum2 - n / m) + abs(sum3 - n / m)) / ((n / m) * 4)
但对照论文中的class loss和average loss的定义里没有(m - sum_re) 和((n / m) * 4),请问如何理解这两处呢?
您好,在代码中定义的class loss和average loss为
# class loss n = len(type_res) m = len(type_res[0]) - 1 type_all = type_res loss = 0 for i in range(n): sum_re = abs(type_all[i][0] - type_all[i][1]) + abs(type_all[i][0] - type_all[i][2]) + abs( type_all[i][1] - type_all[i][2]) loss += (m - sum_re) return loss / n # average loss n = len(type_res) m = len(type_res[0]) type_all = type_res sum1 = 0 sum2 = 0 sum3 = 0 for i in range(n): sum1 += type_all[i][0] sum2 += type_all[i][1] sum3 += type_all[i][2] return (abs(sum1 - n / m) + abs(sum2 - n / m) + abs(sum3 - n / m)) / ((n / m) * 4)但对照论文中的class loss和average loss的定义里没有
(m - sum_re)和((n / m) * 4),请问如何理解这两处呢?
这是一个归一化操作,让loss的值在0-1之间(只是我的习惯),论文里是为了看着简洁清晰所以没写这些归一化系数。实际就相当于乘了一个参数,不影响loss含义。