zoukankan      html  css  js  c++  java
  • 2层感知机(神经网络)实现非线性回归(非线性拟合)【pytorch】

    import torch
    import numpy
    import random
    from torch.autograd import Variable
    import torch.nn.functional as F
    import matplotlib.pyplot as plt 
    
    x = torch.unsqueeze(torch.linspace(-1,1,100),dim=1)
    y = x.pow(2)+0.2*torch.rand(x.size())
    x,y = Variable(x),Variable(y)
    plt.ion()
    class Net(torch.nn.Module):
        def __init__(self,n_feature,n_hidden,n_output):
            super(Net,self).__init__()
            #两层感知机
            self.hidden = torch.nn.Linear(n_feature,n_hidden)
            self.predict = torch.nn.Linear(n_hidden,n_output)
    
        def forward(self,x):
            x = F.relu(self.hidden(x))
            x = self.predict(x)
            return x
    
    net = Net(1,8,1)  #输入节点1个,隐层节点8个,输出节点1个
    optimizer = torch.optim.SGD(net.parameters(),lr = 0.2)
    loss_func = torch.nn.MSELoss()
    
    for t in range(200):
        prediction = net(x)
        loss = loss_func(prediction,y)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        if t%5==0:
            plt.cla()
            plt.scatter(x.data.numpy(),y.data.numpy())
            plt.plot(x.data.numpy(),prediction.data.numpy(),'r-',lw=5)
            plt.pause(0.1)
    
    plt.ioff()
    plt.show()
    

      

    多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。
  • 相关阅读:
    django rest framework renderer
    django集成celery
    Celery
    ajax csrftoken
    验证码刷新、倒计时
    C++ const关键字以及static关键字
    git 查看当前仓库地址以及设置新的仓库地址
    C++ explicit关键字
    SSD训练网络参数计算
    C++ opencv调用resize修改插值方式遇到的坑
  • 原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11537661.html
Copyright © 2011-2022 走看看