pytorch 4 regression 回归
import torch
import torch.nn.functional as F
import matplotlib.pyplot as plt
# torch.manual_seed(1) # reproducible
x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # 将1维数据转换成2维数据,torch不能处理1维数据。x data (tensor), shape=(100, 1)
y = x.pow(2) + 0.2*torch.rand(x.size()) # noisy y data (tensor), shape=(100, 1)
# torch can only train on Variable, so convert them to Variable
# The code below is deprecated in Pytorch 0.4. Now, autograd directly supports tensors
# x, y = Variable(x), Variable(y)
# plt.scatter(x.data.numpy(), y.data.numpy())
# plt.show() # 有噪音的抛物线图
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) # hidden layer
self.predict = torch.nn.Linear(n_hidden, n_output) # output layer
def forward(self, x): # 激活一下进入隐藏层的数据
x = F.relu(self.hidden(x)) # activation function for hidden layer
x = self.predict(x) # linear output
return x
net = Net(n_feature=1, n_hidden=10, n_output=1) # define the network 的大小
print(net) # 显示网络结构 net architecture
> Net(
> (hidden): Linear(in_features=1, out_features=10, bias=True)
> (predict): Linear(in_features=10, out_features=1, bias=True)
> )
optimizer = torch.optim.SGD(net.parameters(), lr=0.2) # 设置优化器优化网络(优化参数,学习率)
loss_func = torch.nn.MSELoss() # 均方差处理回归问题 this is for regression mean squared loss
# plt.ion() # something about plotting
for t in range(200): # 训练的过程
prediction = net(x) # input x and predict based on x
loss = loss_func(prediction, y) # 计算预测值和真实值的误差,预测值在前面,顺序不同可能影响结算结果 must be (1. nn output, 2. target)
optimizer.zero_grad() # 梯度重置为零 clear gradients for next train
loss.backward() # 开始这次的反向传递,计算梯度 backpropagation, compute gradients
optimizer.step() # 使用优化器优化梯度,apply gradients
if t % 5 == 0:
# 可视化显示训练过程 plot and show learning process
plt.cla()
plt.scatter(x.data.numpy(), y.data.numpy())
plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=5)
plt.text(0.5, 0, 'Loss=%.4f' % loss.data.numpy(), fontdict={'size': 20, 'color': 'red'})
plt.pause(0.1)
# plt.ioff()
plt.show()
END
pytorch 4 regression 回归的更多相关文章
- 学习笔记TF024:TensorFlow实现Softmax Regression(回归)识别手写数字
TensorFlow实现Softmax Regression(回归)识别手写数字.MNIST(Mixed National Institute of Standards and Technology ...
- Tensorflow实战第十一课(RNN Regression 回归例子 )
本节我们会使用RNN来进行回归训练(Regression),会继续使用自己创建的sin曲线预测一条cos曲线. 首先我们需要先确定RNN的各种参数: import tensorflow as tf i ...
- 【动手学pytorch】softmax回归
一.什么是softmax? 有一个数组S,其元素为Si ,那么vi 的softmax值,就是该元素的指数与所有元素指数和的比值.具体公式表示为: softmax回归本质上也是一种对数据的估计 二.交叉 ...
- pytorch之 regression
import torch import torch.nn.functional as F import matplotlib.pyplot as plt # torch.manual_seed(1) ...
- pytorch神经网络解决回归问题(非常易懂)
对于pytorch的深度学习框架,在建立人工神经网络时整体的步骤主要有以下四步: 1.载入原始数据 2.构建具体神经网络 3.进行数据的训练 4.数据测试和验证 pytorch神经网络的数据载入,以M ...
- 【机器学习】Softmax 和Logistic Regression回归Sigmod
二分类问题Sigmod 在 logistic 回归中,我们的训练集由 个已标记的样本构成: ,其中输入特征.(我们对符号的约定如下:特征向量 的维度为 ,其中 对应截距项 .) 由于 logis ...
- Regression 回归——多项式回归
回归是指拟合函数的模型.图像等.与分类不同,回归一般是在函数可微的情况下进行的.因为分类它就那么几类,如果把类别看做函数值的话,分类的函数值是离散的,而回归的函数值通常是连续且可微的.所以回归可以通过 ...
- [机器学习]回归--Decision Tree Regression
CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值:当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很好的解决分类问题. ...
- 浅谈回归(二)——Regression 之历史错误翻译
我很好奇这个问题,于是搜了一下.我发现 Regression 这个词 本意里有"衰退"的意思. 词根词缀: re- 回 , 向后 + -gress- 步 , 级 + -ion 名词 ...
随机推荐
- Python编程:从入门到实践 - pygal篇 - Die
掷骰子 # die.py 骰子类 from random import randint class Die(): """表示一个骰子的类""" ...
- Oracle查看哪些表被锁住了
--查看哪些表被锁住了select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_object ...
- hdu 2577 模拟
#include<stdio.h> #define N 200 char s[N]; int judgeup(char c) { if(c>='A'&&c<=' ...
- 工具-VS常用快捷键
项目管理: Ctrl+Shift+N: 新建项目 Ctrl+Shift+O: 打开项目 Ctrl+Shift+S: 全部保存 Shift+Alt+C: 新建类 Ctrl+Shift+A: 新建项 Sh ...
- Python Study (01) 之 特殊方法
Python深入:特殊方法和多范式 Python是一切皆对象,意思就是python的天生就是个"纯面向对象语言"呀. 但是!!! Python还是一个多范式语言(multi-par ...
- (译)RabbitMQ ——“Hello World”
原文地址:http://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html 介绍 RabbitMQ是一个消息实体服务(broker):它接收及转发消 ...
- CentOS6.5下安装远程桌面服务端软件VNC Server
VNC 使您能够远程訪问和控制您的计算机从还有一计算机或移动设备上,不管你在世界的不论什么地方. 常见的使用情形,包含给同事和朋友提供桌面支持.远程管理您的服务器. 将 VNC Server部署到您想 ...
- Fibbonacci Number(杭电2070)
/*Fibbonacci Number Problem Description Your objective for this question is to develop a program whi ...
- lightoj--1410--Consistent Verdicts(技巧)
Consistent Verdicts Time Limit: 5000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu Su ...
- 给centos重新安装yum的base-repo源
转自:https://blog.csdn.net/lovemysea/article/details/79552952 如果自己的centos的系统yum源出现问题了,如何才能修复? 方式一:使用国内 ...