我定义了如下的模型
class mymodel(nn.Module):
def __init__(self, hidden_dim):
super(mymodel, self).__init__()
# 定义 nn.Parameter 类型的参数
self.Alpha = nn.Parameter(torch.empty(hidden_dim), requires_grad=True).cuda()
nn.init.normal_(self.Alpha)
self.Beta = nn.Parameter(torch.empty(hidden_dim), requires_grad=True).cuda()
nn.init.normal_(self.Beta)
def forward(self, x):
return x
# 实例化模型
model = mymodel(hidden_dim=256)
# 打印模型的参数及其名称
for name, param in model.named_parameters():
print(name, param.size())
然而,在我定义如下的优化器时,
self.optimizer = Adam(model.parameters(), lr=self.lr, weight_decay=self.weight_decay)
提示我
ValueError: optimizer got an empty parameter list
出现这个情况是不正常的,因为我定义了alpha和beta两个可学习变量。