Python 如何使用for循环长度作为Pytorch中的优化参数

Python 如何使用for循环长度作为Pytorch中的优化参数,python,optimization,pytorch,autograd,Python,Optimization,Pytorch,Autograd,我试图将循环的长度注册为优化参数,以便优化器自动调整循环的长度 下面是一个示例代码(实际问题更复杂,但您会明白): 优化似乎不起作用,以下是输出: 0 19.467784881591797 10.0 20.0 1 14.334418296813965 10.0 20.0 2 13.515042304992676 10.0 20.0 3 13.477707862854004 10.0 20.0 4 15.240434646606445 10.0 20.0 5 18.45014190673828

我试图将循环的长度注册为优化参数,以便优化器自动调整循环的长度

下面是一个示例代码(实际问题更复杂,但您会明白):

优化似乎不起作用,以下是输出:


0 19.467784881591797 10.0 20.0
1 14.334418296813965 10.0 20.0
2 13.515042304992676 10.0 20.0
3 13.477707862854004 10.0 20.0
4 15.240434646606445 10.0 20.0
5 18.45014190673828 10.0 20.0
6 18.557266235351562 10.0 20.0
7 16.325769424438477 10.0 20.0
8 13.95105266571045 10.0 20.0
9 12.435094833374023 10.0 20.0
10 13.70322322845459 10.0 20.0
11 10.128765106201172 10.0 20.0
12 16.986034393310547 10.0 20.0
13 15.652003288269043 10.0 20.0
14 10.300052642822266 10.0 20.0
15 18.038368225097656 10.0 20.0
16 11.830389022827148 10.0 20.0
17 14.917057037353516 10.0 20.0
18 18.603071212768555 10.0 20.0
19 17.595298767089844 10.0 20.0
20 17.17181968688965 10.0 20.0
21 14.548274993896484 10.0 20.0
22 18.839675903320312 10.0 20.0
23 13.375761032104492 10.0 20.0
24 14.045333862304688 10.0 20.0
25 13.088285446166992 10.0 20.0
26 15.019135475158691 10.0 20.0
27 16.992284774780273 10.0 20.0
28 13.883159637451172 10.0 20.0
29 12.695013999938965 10.0 20.0
30 17.23816680908203 10.0 20.0
...continued
你能建议如何使for循环长度成为一个优化参数吗


谢谢你

我也尝试过使用张量和while循环,但都不起作用:
g=torch.tensor([0.0],需要_grad=True);而g
`循环限制不起作用的原因是,在构建计算图时,实际上没有考虑限制。记住,为了优化变量,前向传递必须对变量进行数学运算,以便后向传递工作。由于循环索引实际上没有在图中使用,而只是将其用作循环的上限或下限,因此图中没有任何内容可用于反向传播以进行优化。我甚至不确定这是否可以在线性优化框架内进行。这听起来像整数编程。继续-也许可以尝试
cvxpy

0 19.467784881591797 10.0 20.0
1 14.334418296813965 10.0 20.0
2 13.515042304992676 10.0 20.0
3 13.477707862854004 10.0 20.0
4 15.240434646606445 10.0 20.0
5 18.45014190673828 10.0 20.0
6 18.557266235351562 10.0 20.0
7 16.325769424438477 10.0 20.0
8 13.95105266571045 10.0 20.0
9 12.435094833374023 10.0 20.0
10 13.70322322845459 10.0 20.0
11 10.128765106201172 10.0 20.0
12 16.986034393310547 10.0 20.0
13 15.652003288269043 10.0 20.0
14 10.300052642822266 10.0 20.0
15 18.038368225097656 10.0 20.0
16 11.830389022827148 10.0 20.0
17 14.917057037353516 10.0 20.0
18 18.603071212768555 10.0 20.0
19 17.595298767089844 10.0 20.0
20 17.17181968688965 10.0 20.0
21 14.548274993896484 10.0 20.0
22 18.839675903320312 10.0 20.0
23 13.375761032104492 10.0 20.0
24 14.045333862304688 10.0 20.0
25 13.088285446166992 10.0 20.0
26 15.019135475158691 10.0 20.0
27 16.992284774780273 10.0 20.0
28 13.883159637451172 10.0 20.0
29 12.695013999938965 10.0 20.0
30 17.23816680908203 10.0 20.0
...continued