pytorch模拟关系拟合——回归实例

  

本次用pytroch来实现一个简单的回归分析,也借此机会来熟悉pytorch的一些基本操作。

  

<强> 1。建立数据集

        进口火炬   从火炬。autograd导入变量   进口matplotlib。pyplot作为plt      # torch.linspace(1100)表示返回一个一维张量,包含在区间1到1上均匀间隔的100个点;   # torch.unsqueeze(输入,昏暗的=1)表示转换维度   x=torch.unsqueeze(火炬。linspace(1, - 1, 100),暗=1)   #生成的y值为x的平方加上随机数   y=x.pow (2) + 0.2 * torch.rand (x.size ())      #用变量来修饰这些数据张量   x, y=torch.autograd.Variable (x)变量(y)      #画的图   y.data.numpy plt.scatter (x.data.numpy () ()   plt.show ()   之前      

<强> 2。构建神经网络

        进口火炬   进口torch.nn。功能是f#激励函数都在这      类网(torch.nn.Module): #继承火炬的模块   def __init__(自我、n_feature n_hidden n_output):   超级(净,自我). __init__() #继承__init__功能   #定义每层用什么样的形式   自我。隐藏=torch.nn。线性(n_feature n_hidden) #隐藏层线性输出   自我。预测=torch.nn。线性(n_hidden n_output) #输出层线性输出      def向前(自我,x): #这同时也是模块中向前的功能   #正向传播输入值,神经网络分析出输出值   x=F.relu (self.hidden (x) #激励函数(隐藏层的线性值)   x=self.predict (x) #输出值   返回x      网=净(n_feature=1, n_hidden=10, n_output=1)      打印(净)#净的结构   ”“”   净(   (隐藏):线性(1→10)   (预测):线性(10→1)   )   ”“”   之前      

<强> 3。实时绘图查看回归效果

        进口matplotlib。pyplot作为plt      plt.ion() #打开交互绘图模式(便于实时显示图像变化)   plt.show ()      优化器=torch.optim.SGD (net.parameters (), lr=0.1) #定义优化器和学习率   loss_func=torch.nn.MSELoss() #定义损失函数      t的范围(200):   预测净(x)=损失=loss_func(预测,y)      optimizer.zero_grad ()   loss.backward ()   optimizer.step ()      如果t % 5==0:   plt.cla ()   y.data.numpy plt.scatter (x.data.numpy()() #画散点图   prediction.data.numpy plt.plot (x.data.numpy () ()、r -, lw=5) #画拟合曲线   plt.text(0.5, 0, '损失=%。4 f ' %的损失。数据[0],fontdict={“大小”:20,“颜色”:“红色”})#显示损失数的值   plt.pause (0.1)      #如果在脚本中使用离子()命令开启了交互模式,没有使用ioff()关闭的话,则图像会一闪而过,并不会常留。要想防止这种情况,需要在plt.show()之前加上ioff()命令。   plt.ioff ()   plt.show ()   之前      

运行终态效果图如下:

  

 pytorch模拟关系拟合——回归实例

  

以上这篇pytorch模拟关系拟合——回归实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

pytorch模拟关系拟合——回归实例