python pytorch numpy DNN 线性回归模型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python pytorch numpy DNN 线性回归模型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2203字,纯文字阅读大概需要4分钟。
内容图文
1、直接奉献代码,后期有入门更新,之前一直在学的是TensorFlow,
import torch from torch.autograd import Variable import torch.nn.functional as F import matplotlib.pyplot as plt import numpy as np x_data = np.arange(-2*np.pi,2*np.pi,0.1).reshape(-1,1) y_data = np.sin(x_data).reshape(-1,1) x = torch.unsqueeze(torch.linspace(-5, 5, 100), dim=1) # 将1维的数据转换为2维数据 # y = x.pow(2) + 0.2 * torch.rand(x.size()) y = torch.cos(x) # 将tensor置入Variable中 x, y = Variable(torch.from_numpy(x_data)).float(), Variable(torch.from_numpy(y_data)).float() print(x.shape,y.shape) # plt.scatter(x.data.numpy(), y.data.numpy()) # plt.show() # 定义一个构建神经网络的类 class Net(torch.nn.Module): # 继承torch.nn.Module类 def __init__(self): super(Net, self).__init__() # 获得Net类的超类(父类)的构造方法 # 定义神经网络的每层结构形式 # 各个层的信息都是Net类对象的属性 self.hidden = torch.nn.Linear(1, 10) # 隐藏层线性输出 self.centre_1 = torch.nn.Linear(10,20) self.predict = torch.nn.Linear(20, 1) # 输出层线性输出 # 将各层的神经元搭建成完整的神经网络的前向通路 def forward(self, x): x = F.tanh(self.hidden(x)) # 对隐藏层的输出进行relu激活 x_1 = F.tanh(self.centre_1(x)) x =F.tanh(self.predict(x_1)) return x # 定义神经网络 net = Net() print(net) # 打印输出net的结构 # 定义优化器和损失函数 optimizer = torch.optim.SGD(net.parameters(), lr=0.5) # 传入网络参数和学习率 loss_function = torch.nn.MSELoss() # 最小均方误差 acc = lambda y1,y2: np.sqrt(np.sum(y1**2+y2**2)/len(y1)) # 神经网络训练过程 plt.ion() # 动态学习过程展示 plt.show() for t in range(100): prediction = net(x) # 把数据x喂给net,输出预测值 loss = loss_function(prediction, y) # 计算两者的误差,要注意两个参数的顺序 optimizer.zero_grad() # 清空上一步的更新参数值 loss.backward() # 误差反相传播,计算新的更新参数值 optimizer.step() # 将计算得到的更新值赋给net.parameters() # 可视化训练过程 if (t + 1) % 2 == 0: plt.cla() plt.scatter(x.data.numpy(), y.data.numpy()) plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=2) aucc = acc(prediction.data.numpy(),y.data.numpy()) print("loss={} aucc={}".format(loss.data.numpy(),aucc)) plt.text(-4.5, 1, 'echo=%sL=%.4f acc=%s' % (t+1,loss.data.numpy(),aucc), fontdict={'size': 15, 'color': 'red'}) plt.pause(0.1) print("训练结束") plt.ioff() plt.show()
内容总结
以上是互联网集市为您收集整理的python pytorch numpy DNN 线性回归模型全部内容,希望文章能够帮你解决python pytorch numpy DNN 线性回归模型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。