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

      

    多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。
  • 相关阅读:
    8-kubernetes-安全
    6-kubernetes网络
    5-kunernetes资源调度
    4-K8S 部署Java应用及应用程序生命周期管理
    3-kubernetes监控与日志管理
    2-K8S常用命令
    1-kubeadm部署1.18.0单master集群
    部署Prometheus+Grafana监控
    微信小程序学习
    vue 中使用 @scroll事件 没有用
  • 原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11537661.html
Copyright © 2011-2022 走看看