pytorch笔记——简易回归问题
1 数据集部分
#导入库
import torch
import matplotlib.pyplot as plt#建议数据集
x=torch.linspace(-1,1,100)
x=x.view(-1,1)
y=torch.pow(x,2)+0.2*torch.rand(x.shape)
#y=x*x+噪声#可视化
plt.scatter(x,y)
2 模型定义部分
import torch
import torch.nn.functional as F#定义模型
class Net(torch.nn.Module):def __init__(self,n_input,n_hidden,n_output):super(Net,self).__init__()self.hidden=torch.nn.Linear(n_input,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(n_input=1,n_hidden=10,n_output=1)
print(net)
'''
Net((hidden): Linear(in_features=1, out_features=10, bias=True)(predict): Linear(in_features=10, out_features=1, bias=True)
)
'''
3 模型训练+绘图
import matplotlib.pyplot as plt#使用SGD进行梯度下降,设置学习率为0.2
optimizer=torch.optim.SGD(net.parameters(),lr=0.2)#设置误差函数
loss_func=torch.nn.MSELoss()#误差值组成的列表
losses=[]#开始训练
for epoch in range(100):prediction=net(x)#喂给net训练数据x,输出预测值loss=loss_func(prediction,y)losses.append(loss.item())#每十次画一张图if(epoch%10==0):plt.scatter(x,y,c='green')plt.plot(x,prediction.detach(),c='blue')#这里prediction是带requires_grad的,需要detach掉plt.show()optimizer.zero_grad()#清空上一步残余的参数更新值loss.backward()#误差反向传播,计算参数更新值optimizer.step()#将参数更新值施加到net的parameters上
print(losses[-1])
#0.004355926997959614
第一张图:
最后一张图:
pytorch笔记——简易回归问题相关推荐
- pytorch笔记:policy gradient
本文参考了 策略梯度PG( Policy Gradient) 的pytorch代码实现示例 cart-pole游戏_李莹斌XJTU的博客-CSDN博客_策略梯度pytorch 在其基础上添加了注释和自 ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- pytorch笔记:实现简易LSTM
1 lstm理论部分 详细可见 机器学习笔记 RNN初探_刘文巾的博客-CSDN博客 2 torch.nn.LSTM 2.1 参数 – input_size – hidden_size – num_ ...
- 深度学习PyTorch笔记(12):线性神经网络——softmax回归
深度学习PyTorch笔记(12):线性神经网络--softmax回归 6 线性神经网络--softmax回归 6.1 softmax回归 6.1.1 概念 6.1.2 softmax运算 6.2 图 ...
- pytorch 笔记:torchsummary
作用:打印神经网络的结构 以pytorch笔记:搭建简易CNN_UQI-LIUWJ的博客-CSDN博客 中搭建的CNN为例 import torch from torchsummary import ...
- (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ
开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...
- (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(4)线性神经网络(暂停)
开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...
- 【分类器 Softmax-Classifier softmax数学原理与源码详解 深度学习 Pytorch笔记 B站刘二大人(8/10)】
分类器 Softmax-Classifier softmax数学原理与源码详解 深度学习 Pytorch笔记 B站刘二大人 (8/10) 在进行本章的数学推导前,有必要先粗浅的介绍一下,笔者在广泛查找 ...
- 【 非线性回归 Logistics-Regression 模块实现与源码解读 深度学习 Pytorch笔记 B站刘二大人(5/10)】
非线性回归 Logistics-Regression 模块实现与源码解读 深度学习 Pytorch笔记 B站刘二大人(5/10) 数学推导 什么是logistics函数 在定义上Logistic函数或 ...
最新文章
- matplotlib pcolormech 用法
- java分布式锁解决方案 redisson or ZooKeeper
- 八百客CRM:微信提现收费,仅仅用户钱包受了伤?
- 网站优化中哪些设置会影响蜘蛛的抓取?对网站SEO产生什么影响?
- Python字符串格式化f-string格式
- 交流继电器rc吸收电路_使用固态继电器的注意事项
- c# 2.0 Factory的实现
- php定时任务(自己)
- 文件加密及解密openssl
- 神经网络的SGD、Momentum、AdaGrad、Adam最优化方法及其python实现
- 计算机显示文本自定义130%,实训课题目
- JavaScript闭包详解
- 更改一个主键的列的类型的步骤
- 【深度学习】使用Keras开发的流程概述
- 高等数学复习笔记(二)- 一元函数微分学的概念、计算以及几何应用
- 应邀参加51CTO专家座谈门诊——驱动开发技术探析【2008.11.20在线】
- 二选一数据选择器2-1 MUX
- Java指纹识别开源代码SourceAFIS使用入门
- echarts 弹出放大_vue中使用v-chart时放大缩小屏幕,echarts图自适应
- 世界超长经典名车荟萃
热门文章
- php学习笔记之static的问题
- 天使投资乱象频出 熟人元素何时剔除
- IOS开发-GitHub使用详解
- 来自 IsayNo (@IsayNooo) 的推文
- 当一个有性能问题的数据库摆在你的面前,作为责任人,你的处理思路是什么?...
- win7‘上帝模式’
- OSPF常见错误和排错方法
- tcp/ip 协议栈Linux源码分析二 IPv4分片报文重组分析二
- docker 安装nacos_「Java Spring Cloud 实战之路」 使用nacos配置网关
- python网站开发linux_使用Python编写Linux系统守护进程实例