网络的可学习参数 net.parameters()
for parameters in net.parameters(): print(parameters) 使用 net.named_parameters() 可同时返回可学习参数和名称loss损失函数在nn中常用的都包含,是类的方式,先定义后使用 优化器在torch.optim中 , 传入 net.parameters() 网络的参数
SGD随机梯度下降算法,带有动量的可选参数
optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)RMSprop算法,可以减小某些维度梯度更新波动较大的情况,使其梯度下降的速度变得更快
optimizer = torch.optim.RMSprop(model.parameters(), lr=0.01, alpha=0.99)Adam 自动更新梯度,一般使用默认值即可
optimizer = torch.optim.Adam(model.parameters())输出在(0,1),把输入变换为0到1之间的输出。 需要进行指数运算,比较慢,且不利于权重优化。 目前基本上只有在做二元分类(0,1)时的输出层才会使用。
输出区间是在(-1,1)之间,以0为中心。 随着Relu的出现所有的隐藏层基本上都使用relu来作为激活函数了
a=max(0, x) 导数大于0时1,小于0时0。 当输入是负数的时候,ReLU是完全不被激活的. 但是实际的运用中,该缺陷的影响不是很大。
a=max(zx, x) z=0.01 理论上来讲,Leaky ReLU有ReLU的所有优点,但是在实际操作当中,并没有完全证明Leaky ReLU总是好于ReLU。