我知道每层可以有一个学习率(链接)。我还发现了如何动态更改学习率(在没有调度程序的情况下在训练过程中动态更改它)(链接)。
如何创建一个每个神经元具有动态学习率的优化器?这样我就可以在训练期间改变特定神经元的学习率值
例如,如果我的网络如下:
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.fc1 = nn.Linear(3,5)
self.fc2 = nn.Linear(5,10)
self.fc3 = nn.Linear(10,1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = torch.relu(self.fc2(x))
x = torch.relu(self.fc3(x))
return x
第一层应该有 5 个学习率(5 个神经元每个都有一个,每个神经元有 3 个相关的权重),第二层有 10 个,最后一个有 1 个。