##在网络的训练过程中如何查看optimizer的参数?optimizer.param_groups
是一个列表,列表中的元素是一个个字典。
###如果你的optimizer这样写:
optimizer = torch.optim.Adam(cnn.parameters())
那么optimizer.param_groups
是包含一个字典的列表。
可以通过optimizer.param_groups[0]
取出这个字典,可以看下它包含哪些参数:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22{'betas': (0.9, 0.999),
'eps': 1e-08,
'lr': 0.001,
'params': [Parameter containing:
(0 ,0 ,.,.) =
-0.0116 0.0621 -0.0300 -0.1113 -0.0077
0.0339 0.0730 -0.1948 0.0330 -0.0886
-0.0476 0.0123 -0.1204 -0.1775 0.0321
0.1862 -0.0613 -0.1309 -0.1461 -0.1497
-0.0738 0.1986 -0.0223 -0.0217 -0.0191
...
(15,0 ,.,.) =
-0.1605 0.1760 -0.0950 0.0716 -0.0603
0.1547 -0.1716 0.1406 0.0155 0.1417
-0.0405 -0.1392 -0.1946 0.1510 -0.0985
-0.1094 -0.0099 0.0079 -0.1506 0.1812
0.0217 -0.0062 0.1246 0.0715 0.1031
[torch.cuda.FloatTensor of size 16x1x5x5 (GPU 0)]
],
'weight_decay': 0}
可以看出,有betas, eps, lr, paras, weight_decay。
因此如果训练过程中想查看lr,只需optimizer.param_groups[0]['lr']
即可,查看其他参数类似。
前面讲过一个adam可以设置不同的学习率和其他的参数,如
1 | optimizer = torch.optim.Adam([{'params':cnn.layer1.parameters()}, |