• 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()
    

      

    多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。
  • 相关阅读:
    Android之Activity启动过程
    Android之Application进阶
    Android之Context进阶
    Thread之ThreadLocal
    Android 系统服务与Binder应用服务
    Android Binder
    Android SystemServer
    Android系统服务与服务注册
    Android Binder进阶扁一
    小米商城-题头3
  • 原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11537661.html
Copyright © 2020-2023  润新知