1.pytorch简易版理解神经网络_01(调框架)
import torch
#创建样本和标签
_x=[i/100. for i in range(100)]
_y=[3*e+4 for e in _x]
#将样本和标签变为tensor
x=torch.tensor(_x)
y=torch.tensor(_y)
#随机生成一个w和b
w=torch.rand(1,requires_grad=True)
b=torch.rand(1,requires_grad=True)
#定义一个损失函数(调框架)
loss_func=torch.nn.MSELoss()
#定义一个优化函数(调框架)
opt=torch.optim.SGD([w,b],lr=0.1)
#开始训练
for i in range(1000):
z=w*x+b
loss=loss_func(z,y)
#清空梯度
opt.zero_grad()
#反向求导
loss.backward()
#更新梯度
opt.step()
#打印更新结果
print(w,b)
2.pytorch简易版理解神经网络——02(手写均方差损失函数)
import torch
#创建样本和标签
_x=[i/100. for i in range(100)]
_y=[3*e+4 for e in _x]
#将样本和标签变为tensor
x=torch.tensor(_x)
y=torch.tensor(_y)
#随机生成一个w和b
w=torch.rand(1,requires_grad=True)
b=torch.rand(1,requires_grad=True)
#定义一个优化函数(调框架)
opt=torch.optim.SGD([w,b],lr=0.1)
#开始训练
for i in range(1000):
z=w*x+b
#制作均方差损失函数
a=z-y
loss=torch.mean(a**2)
#清空梯度
opt.zero_grad()
#反向求导
loss.backward()
#更新梯度
opt.step()
#打印更新结果
print(w,b,loss)