当前位置:网站首页>Pytorch four commonly used optimizer tests
Pytorch four commonly used optimizer tests
2022-07-06 11:59:00 【Want to be a kite】
PyTorch Four common optimizer tests SGD、SGD(Momentum)、RMSprop、Adam
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
import torch
import torch.utils.data as Data
import torch.nn.functional as F
import matplotlib.pyplot as plt
# Hyperparameters
LR =0.001
Batch_Size = 32
Epochs = 12
# Generate training data
x = torch.unsqueeze(torch.linspace(-1,1,1000),dim=1)
y = x.pow(2) + 0.1 * torch.normal(torch.zeros(*x.size()))
torch_dataset = Data.TensorDataset(x,y)
loader = Data.DataLoader(dataset=torch_dataset,batch_size=Batch_Size,shuffle=True)
class Net2(torch.nn.Module):
def __init__(self):
super(Net2,self).__init__()
self.hidden = torch.nn.Linear(1,20)
self.predict = torch.nn.Linear(20,1)
# Forward pass
def forward(self,x):
x = F.relu(self.hidden(x))
x = self.predict(x)
return x
net_SGD = Net2()
net_Momentum =Net2()
net_RMSprop = Net2()
net_Adam = Net2()
nets = [net_SGD,net_Momentum,net_RMSprop,net_Adam]
opt_SGD = torch.optim.SGD(net_SGD.parameters(),lr=LR)
opt_Momentum = torch.optim.SGD(net_Momentum.parameters(),lr=LR,momentum=0.9)
opt_RMSProp = torch.optim.RMSprop(net_RMSprop.parameters(),lr=LR,alpha=0.9)
opt_Adam = torch.optim.Adam(net_Adam.parameters(),lr=LR,betas=(0.9,0.99))
optimizers = [opt_SGD,opt_Momentum,opt_RMSProp,opt_Adam]
loss_func = torch.nn.MSELoss()
loss_his = [[],[],[],[]]
for epoch in range(Epochs):
for step,(batch_x,batch_y) in enumerate(loader):
for net,opt,l_his in zip(nets,optimizers,loss_his):
output = net(batch_x)
loss = loss_func(output,batch_y)
opt.zero_grad()
loss.backward()
opt.step()
l_his.append(loss.data.numpy()) #loss recoder
labels = ['SGD','Momentum','RMsprop','Adam']
for i ,l_his in enumerate(loss_his):
plt.plot(l_his, label=labels[i])
plt.legend(loc='best')
plt.xlabel('Steps')
plt.ylabel('Loss')
plt.ylim((0, 0.2))
plt.show()
边栏推荐
- Word排版(小計)
- R & D thinking 01 ----- classic of embedded intelligent product development process
- 使用LinkedHashMap实现一个LRU算法的缓存
- Pytoch Foundation
- Composition des mots (sous - total)
- Selective sorting and bubble sorting [C language]
- Using LinkedHashMap to realize the caching of an LRU algorithm
- error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_ s instead
- TypeScript
- 高通&MTK&麒麟 手机平台USB3.0方案对比
猜你喜欢
Word typesetting (subtotal)
Comparison of solutions of Qualcomm & MTK & Kirin mobile platform USB3.0
E-commerce data analysis -- User Behavior Analysis
STM32型号与Contex m对应关系
I2C总线时序详解
error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_ s instead
Machine learning -- linear regression (sklearn)
Pytoch Foundation
Gallery之图片浏览、组件学习
小L的试卷
随机推荐
C language callback function [C language]
arduino获取数组的长度
[Flink] Flink learning
Detailed explanation of express framework
JS object and event learning notes
[CDH] cdh5.16 configuring the setting of yarn task centralized allocation does not take effect
Matlab learning and actual combat notes
RT-Thread的main线程“卡死”的一种可能原因及解决方案
I2C总线时序详解
分布式事务的实现方案
【CDH】CDH/CDP 环境修改 cloudera manager默认端口7180
Raspberry pie tap switch button to use
MySQL START SLAVE Syntax
选择法排序与冒泡法排序【C语言】
TypeScript
Oppo vooc fast charging circuit and protocol
Common regular expression collation
Redis面试题
Unit test - unittest framework
Pytorch-温度预测