重量衰减损失

2024-09-27 21:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要编写一个代码,通过给定的步骤计算lambda来逐渐衰减损失函数的权重,但我不知道。任何帮助都将不胜感激。你知道吗

这是我的损失函数:

loss_A = criterion(recov_A, real_A)
loss_Final = lambda_A * loss_A + #lambda_A is a fixed number: 10

我不想把兰姆达修好。我需要在通过指定的步数后逐渐衰减lambda

# write function that computes lambda given the steps
cur_lambda  = compute_lambda(step, decay_params, initial_lamdba) 
Loss_Final = cur_lambda * loss_A

Tags: lambda函数代码numberis步骤realfinal
2条回答

要衰减固定的数字取决于步数,甚至是纪元数,您可以使用以下代码,也可以将代码编写为函数,并随时调用它。你知道吗

final_value = 1e-3 # Small number because dont end up with 0 
initial_value = 20
starting_step = 25 
total_step = 100
for i in range(total_step):
  if i <= starting_step:
     print(i, initial_value)
  else:
    print (i, initial_value + i * (final_value-initial_value)/total_step) 

显而易见的解决方案是:

l = lambda r: 1 if r < 10 else 1.0-(r-9)/10.0  # 1 for r in 0..9, then less then 1 down to 0

value = 20
for r in range(20):
    print (r,":", value * l(r))  # multiply your loss with round-based lambda factor

输出:

0 : 20
1 : 20
2 : 20
3 : 20
4 : 20
5 : 20
6 : 20
7 : 20
8 : 20
9 : 20
10 : 18.0
11 : 16.0
12 : 14.0
13 : 12.0
14 : 10.0
15 : 8.0
16 : 6.000000000000001
17 : 3.999999999999999
18 : 1.9999999999999996
19 : 0.0

相关问题 更多 >

    热门问题