简易理解神经网络

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)
发布了29 篇原创文章 · 获赞 45 · 访问量 5050

猜你喜欢

转载自blog.csdn.net/sinat_39783664/article/details/103524009