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 线性回归模型的更多相关文章

  1. Python机器学习/LinearRegression(线性回归模型)(附源码)

    LinearRegression(线性回归) 2019-02-20  20:25:47 1.线性回归简介 线性回归定义: 百科中解释 我个人的理解就是:线性回归算法就是一个使用线性函数作为模型框架($ ...

  2. 莫烦python教程学习笔记——线性回归模型的属性

    #调用查看线性回归的几个属性 # Youtube video tutorial: https://www.youtube.com/channel/UCdyjiB5H8Pu7aDTNVXTTpcg # ...

  3. 02_利用numpy解决线性回归问题

    02_利用numpy解决线性回归问题 目录 一.引言 二.线性回归简单介绍 2.1 线性回归三要素 2.2 损失函数 2.3 梯度下降 三.解决线性回归问题的五个步骤 四.利用Numpy实战解决线性回 ...

  4. 线性回归模型(Linear Regression)及Python实现

    线性回归模型(Linear Regression)及Python实现 http://www.cnblogs.com/sumai 1.模型 对于一份数据,它有两个变量,分别是Petal.Width和Se ...

  5. 吴裕雄 python 机器学习——线性回归模型

    import numpy as np from sklearn import datasets,linear_model from sklearn.model_selection import tra ...

  6. 【scikit-learn】scikit-learn的线性回归模型

     内容概要 怎样使用pandas读入数据 怎样使用seaborn进行数据的可视化 scikit-learn的线性回归模型和用法 线性回归模型的评估測度 特征选择的方法 作为有监督学习,分类问题是预 ...

  7. scikit-learn的线性回归模型

    来自 http://blog.csdn.net/jasonding1354/article/details/46340729 内容概要 如何使用pandas读入数据 如何使用seaborn进行数据的可 ...

  8. 用C++调用tensorflow在python下训练好的模型(centos7)

    本文主要参考博客https://blog.csdn.net/luoyexuge/article/details/80399265 [1] bazel安装参考:https://blog.csdn.net ...

  9. [tensorflow] 线性回归模型实现

    在这一篇博客中大概讲一下用tensorflow如何实现一个简单的线性回归模型,其中就可能涉及到一些tensorflow的基本概念和操作,然后因为我只是入门了点tensorflow,所以我只能对部分代码 ...

随机推荐

  1. Acwing-97-约数之和(整数分解, 递推分治)

    链接: https://www.acwing.com/problem/content/99/ 题意: 假设现在有两个自然数A和B,S是AB的所有约数之和. 请你求出S mod 9901的值是多少. 思 ...

  2. python-加密算法

    #!/usr/bin/python3 # coding:utf-8 # Auther:AlphaPanda # Description: 使用hashlib模块的md5和sha系列加密算法对字符串进行 ...

  3. PyCharm控制台输出乱码

    IDE Encoding设置为GBK后,在运行程序,中文就显示正常了 据说是因为ide编码不能设置为utf-8,需要设置为gdb,因为这个控制台的代码需要和windows保持一致. 另外还有一个问题就 ...

  4. windows10禁止系统更新

  5. 微信小程序开发整理

    具体介绍包含以下内容: 1.文件结构 2.组件 4.API 4.工具 5.问题

  6. 51 Nod 1020 逆序排列

    1020 逆序排列  基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么 ...

  7. G. Gangsters in Central City

    给出一棵$1$为根节点的含$n$个节点的树,叶子节点都是房屋,在一个集合里面添加房屋和移除房屋. 每一次添加和移除后,回答下面两个问题. 1.  使得已选房屋都不能从根节点到达,最少需要砍多少条边. ...

  8. R_Studio(时序)Apriori算法寻找频繁项集的方法

    应用ARIMA(1,1,0)对2015年1月1日到2015年2月6日某餐厅的销售数量做为期5天的预测 setwd('D:\\dat') #install.packages("forecast ...

  9. python学习之路(3)

    字符串和编码 因为python最早只支持ASCII编码普通的字符串'ABC'在Python内部都是ASCII编码的.Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换 后来p ...

  10. [CSP-S模拟测试]:集合合并(记忆化搜索)

    题目传送门(内部题133) 输入格式 第一行一个正整数$n$. 第二行$n$个正整数$a_i$,表示一开始有$S_i=\{a_i\}$ 输出格式 输出一个非负整数表示最大的收益之和 样例 样例输入: ...