PyTorch之torch.optim

在PyTorch的torch.optim包中提供了非常多的可实现参数自动优化的优化器,比如SGD、AdaGrad、RMSProp、Adam等, 这些类都可以被直接调用,使用起来也非常方便。

具体的调用为:

一:torch.optim.对应优化器

optimizer = torch.optim.Adam(models.parameters(),lr = learning_rate)

 models.Parameters()直接调用我们训练网络中的models的参数

其中learning_rate如果没有设置的话就默认为0.001

二:optimizer.step()

在训练过程中可以添加optimizer.step()来对我们的计算得到的梯度值对各个节点的参数进行梯度更新。

    optimizer.step()

最终代码:

import torch
from torch.autograd import Variable
input_data = 1000
output_data = 10
hidden_layer = 100
learning_rate = 1e-4
batch_n = 100

x = Variable(torch.randn(batch_n,input_data),requires_grad = False)
y = Variable(torch.randn(batch_n,output_data),requires_grad = False)

models = torch.nn.Sequential(
    torch.nn.Linear(input_data,hidden_layer),
    torch.nn.ReLU(),
    torch.nn.Linear(hidden_layer,output_data)
)
loss_fn = torch.nn.MSELoss()
epoch_n = 30
optimizer = torch.optim.Adam(models.parameters(),lr = learning_rate)
for epoch in range(epoch_n):
    y_pred = models(x)
    loss = loss_fn(y_pred,y)
    print("Epoch:{},Loss:{:.4f}".format(epoch,loss.item()))
    optimizer.zero_grad()
    
    loss.backward()
    optimizer.step()
    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值