《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibili

P5--用Pytorch实现线性回归

建立模型四大步骤

一、Prepare dataset

mini-batch:x、y必须是矩阵

## Prepare Dataset:mini-batch, X、Y是3X1的Tensor
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[2.0], [4.0], [6.0]])

二、Design model

1、重点是构造计算图

##Design Model

##构造类,继承torch.nn.Module类
class LinearModel(torch.nn.Module):
## 构造函数,初始化对象
def __init__(self):
##super调用父类
super(LinearModel, self).__init__()
##构造对象,Linear Unite,包含两个Tensor:weight和bias,参数(1, 1)是w的维度
self.linear = torch.nn.Linear(1, 1) ## 构造函数,前馈运算
def forward(self, x):
## w*x+b
y_pred = self.linear(x)
return y_pred model = LinearModel()

2、设置w的维度,后一层的神经元数量 X 前一层神经元数量

三、Construct Loss and Optimizer

##Construct Loss and Optimizer

##损失函数,传入y和y_presd
criterion = torch.nn.MSELoss(size_average = False) ##优化器,model.parameters()找出模型所有的参数,Lr--学习率
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

1、损失函数

2、优化器

可用不同的优化器进行测试对比

四、Training cycle

## Training cycle

for epoch in range(100):
y_pred = model(x_data)
loss = criterion(y_pred, y_data)
print(epoch, loss) ##梯度归零
optimizer.zero_grad()
##反向传播
loss.backward()
##更新
optimizer.step()

完整代码

import torch

## Prepare Dataset:mini-batch, X、Y是3X1的Tensor
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[2.0], [4.0], [6.0]]) ##Design Model ##构造类,继承torch.nn.Module类
class LinearModel(torch.nn.Module):
## 构造函数,初始化对象
def __init__(self):
##super调用父类
super(LinearModel, self).__init__()
##构造对象,Linear Unite,包含两个Tensor:weight和bias,参数(1, 1)是w的维度
self.linear = torch.nn.Linear(1, 1) ## 构造函数,前馈运算
def forward(self, x):
## w*x+b
y_pred = self.linear(x)
return y_pred model = LinearModel() ##Construct Loss and Optimizer ##损失函数,传入y和y_presd
criterion = torch.nn.MSELoss(size_average = False) ##优化器,model.parameters()找出模型所有的参数,Lr--学习率
optimizer = torch.optim.SGD(model.parameters(), lr=0.01) ## Training cycle for epoch in range(100):
y_pred = model(x_data)
loss = criterion(y_pred, y_data)
print(epoch, loss) ##梯度归零
optimizer.zero_grad()
##反向传播
loss.backward()
##更新
optimizer.step() ## Outpue weigh and bias
print('w = ', model.linear.weight.item())
print('b = ', model.linear.bias.item()) ## Test Model
x_test = torch.Tensor([[4.0]])
y_test = model(x_test)
print('y_pred = ', y_test.data)

运行结果

训练100次后,得到的 weight and bias,还有预测的y

Pytorch实战学习(一):用Pytorch实现线性回归的更多相关文章

  1. 对比学习:《深度学习之Pytorch》《PyTorch深度学习实战》+代码

    PyTorch是一个基于Python的深度学习平台,该平台简单易用上手快,从计算机视觉.自然语言处理再到强化学习,PyTorch的功能强大,支持PyTorch的工具包有用于自然语言处理的Allen N ...

  2. 深度学习之PyTorch实战(3)——实战手写数字识别

    上一节,我们已经学会了基于PyTorch深度学习框架高效,快捷的搭建一个神经网络,并对模型进行训练和对参数进行优化的方法,接下来让我们牛刀小试,基于PyTorch框架使用神经网络来解决一个关于手写数字 ...

  3. 深度学习之PyTorch实战(1)——基础学习及搭建环境

    最近在学习PyTorch框架,买了一本<深度学习之PyTorch实战计算机视觉>,从学习开始,小编会整理学习笔记,并博客记录,希望自己好好学完这本书,最后能熟练应用此框架. PyTorch ...

  4. 参考《深度学习之PyTorch实战计算机视觉》PDF

    计算机视觉.自然语言处理和语音识别是目前深度学习领域很热门的三大应用方向. 计算机视觉学习,推荐阅读<深度学习之PyTorch实战计算机视觉>.学到人工智能的基础概念及Python 编程技 ...

  5. 深度学习之PyTorch实战(2)——神经网络模型搭建和参数优化

    上一篇博客先搭建了基础环境,并熟悉了基础知识,本节基于此,再进行深一步的学习. 接下来看看如何基于PyTorch深度学习框架用简单快捷的方式搭建出复杂的神经网络模型,同时让模型参数的优化方法趋于高效. ...

  6. PyTorch 实战:计算 Wasserstein 距离

    PyTorch 实战:计算 Wasserstein 距离 2019-09-23 18:42:56 This blog is copied from: https://mp.weixin.qq.com/ ...

  7. pytorch例子学习-DATA LOADING AND PROCESSING TUTORIAL

    参考:https://pytorch.org/tutorials/beginner/data_loading_tutorial.html DATA LOADING AND PROCESSING TUT ...

  8. pytorch的学习资源

    安装:https://github.com/pytorch/pytorch 文档:http://pytorch.org/tutorials/beginner/blitz/tensor_tutorial ...

  9. 【pytorch】学习笔记(三)-激励函数

    [pytorch]学习笔记-激励函数 学习自:莫烦python 什么是激励函数 一句话概括 Activation: 就是让神经网络可以描述非线性问题的步骤, 是神经网络变得更强大 1.激活函数是用来加 ...

  10. 【pytorch】学习笔记(二)- Variable

    [pytorch]学习笔记(二)- Variable 学习链接自莫烦python 什么是Variable Variable就好像一个篮子,里面装着鸡蛋(Torch 的 Tensor),里面的鸡蛋数不断 ...

随机推荐

  1. 关于异常处理的return

    无论try代码块中是否有异常,finally里的代码都会执行 当try和catch代码块中有return语句时,finally仍然会执行 如果try-catch-finally都有return语句,则 ...

  2. Mat数据结构

    1.MAT类: OpenCV从2001年开始发展,在最初使用的是c语言,使用的是IplImage数据结构来存储图像,但是最大的问题需要手动申请释放内从( manual memory managemen ...

  3. javascript的防抖与节流

    一.节流 一段时间内只能触发一次,如果这段时间内触发多次事件,只有第一次生效会触发回调函数,一段时间过后才能再次触发(一定时间内只执行第一次) 应用场景 1.鼠标连续不断地触发某事件(如点击),只在单 ...

  4. 10分钟学会使用 Loki 日志聚合系统

    Loki 是一个由Grafana Labs 开发的开源日志聚合系统,旨在为云原生架构提供高效的日志处理解决方案. Loki 通过使用类似 Prometheus 的标签索引机制来存储和查询日志数据,这使 ...

  5. .NET 8 预览版 1:NativeAOT 升级和新的Blazor United

    .NET团队 今天在官方博客上 发布了.NET 8的第一个预览版,.NET 8 是一个长期支持 (LTS) 版本[1],.NET 的版本包括产品.库.运行时和工具,是 Microsoft 内部和外部多 ...

  6. LG P4173 残缺的字符串

    \(\text{Problem}\) 大概就是带通配符的字符串匹配问题,输出所有比配位置 \(1\le n \le 3\times 10^5\) \(\text{Solution}\) 这是 \(FF ...

  7. 前后端分离项目创建项目详细过程项、目需求分析、pip换源、创建虚环境、后端目录调整以及解决问题

    引言,本项目是前后端分离的,前端用Vue2 后端用Django,后台管理部分是通过simpleUI完成的项目,项目名称为路飞,是商城类(知识付费项目).本篇文章主要讨论一个前后端分离的项目第一步怎么做 ...

  8. LeetCode-1606 找到处理请求最多的服务器

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-servers-that-handled-most-number-of-requests ...

  9. mkdir 08 权限居然和mkdir 07不同

    在用fileZilla软件往Ubuntu传输文件时,提示没有权限,当时就蒙了,往文件夹复制内容怎么还扯到权限了?ls -l一看,mkdir 08 权限居然和mkdir 07不同,记录下来. 原因:在嵌 ...

  10. 关于vscode 一些配置

    一. 基本操作 1.创建完项目, code .   直接在vscode 中打开 2.设置--首选项  检测 package.json 文件   点击serve 是可以运行 3.常用的vscode 插件 ...