dejahu的深度学习学习笔记01-线性回归+Pytorch代码实现

【大作业-04】手把手教你构建垃圾分类系统-基于tensorflow2.3 B站视频:等待更新(b站:dejahu) 代码地址:trash_classification_tf2.3: 基于tensorflow2.3的垃圾分类系统 (gitee.com) 模型和数据集地址:垃圾分类数据集和tf代码-8w张图片245个类.zip-深度学习文档类资源-优快云下载 大家有什么想法也可以在评论区留言,我会根据留言情况出对应的教程。 哈喽,大家好,这里是dejahu,本期教程给大家带来的是基于tensorflow2.3的垃圾分类系统,主要还是为了教会大家如何使用我写好的物体分类模板代码去. 阅读详情

机器学习简单来讲可以分为两个问题,我们都是希望能将现实中的问题进行抽象来构建数学模型,根据预测的内容,可以将问题分为回归问题和分类问题,如果预测的是连续值,那么就是回归问题,如果预测的是离散值,那么就是分类问题。比如房价的预测就是一个典型的回归问题,给出房子的面积、地理位置等基本输入,模型可以根据这些输入得到房子大概的价格。

image-20210704145222734

原理介绍

?什么是模型

大概从大一开始,就接触到模型这个概念,很多时候不不是很清楚到底啥是个模型。以为现在的理解来看,模型就是数学公式,比如我们高中学到的kx+b就是一个线性模型,在具体的问题中,不仅要有这个公式的一般形式,而且还要有根据这个具体问题所解得得k和b的具体的值,就是现在的深度学习中,模型也可以这么理解,不过是公式更加复杂,需要求解的参数也越多而已。

线性回归的基本要素

回归问题中,以刚才所提到的房价预测为例,我们将影响房价的几个因素记为x,将成交价记为y,则这个问题可以抽线为下列公式。
y = w 1 x 1 + w 2 x 2 + w 3 x 3 + b y = w_1x_1 + w_2x_2 + w_3x_3 +b y=w1​x1​+w2​x2​+w3​x3​+b
权重和偏差就是我们这个机器学习的模型需要学习得到的参数,学习的是大量的真实房屋数据的样本。通过大量真实的有成交价的房屋数据来进行学习,这个成为监督学习,也就是常说的supervisor learning。

线性回归的表示方法

我们将上述问题进一步抽象,得到线性回归问题的一般表示形式。

  • 给定n维的输入 x = [ x 1 , x 2 , . . . , x 3 ] T x=[x_1, x_2,...,x_3]^T x=[x1​,x2​,...,x3​]T

  • 线性模型有一个n维的权重和一个标量误差
    w = [ w 1 , w 2 , . . . , w n ] T , b w = [w_1,w_2,...,w_n]^T, b w=[w1​,w2​,...,wn​]T,b

  • 输出是输入的加权和
    y = w 1 x 1 + w 2 x 2 + . . . + w n x n + b y = w_1x_1 + w_2x_2 + ... + w_nx_n + b y=w1​x1​+w2​x2​+...+wn​xn​+b

向量版本为:$ y = <w, x> + b $

使用图形可以表示为下列的形式,可以看作是单层的神经网络

image-20210704150454649

如何求解

求解的过程和我们参加高考的过程是一样的,我们需要事先做大量的习题,训练一个会做高考题的大脑,不断提升自我,才能完成最后的高考。模型训练的过程可以分为下面几步:

  1. 计算损失

    回归问题比较简单,我们一般使用平方损失即可$l(y,\hat{y}) = \frac{1}{2}(y - \hat{y})^2 $

  2. 训练数据

    搜集大量的真实房屋数据,输入模型进行学习,一般为了防止过拟合,采用batch来进行训练

  3. 参数学习

    线性回归可以求得显式解,但是比较麻烦,所以一般使用随机梯度下降sgd(链式法则)来求解

代码实现

我们生成一个大小为2的数据,然后通过这个数据求w1,w2和b,代码是借助pytorch来实现的,构建模型的方法非常简单,只需要通过torch.Linear(2, 1)来构建一个输入为2,输出为1的全连接层即可。

import numpy as np
import torch
from torch.utils import data
from d2l import torch as d2l
from torch import nn

# 1. 生成数据集
true_w = torch.tensor([2, -3.4])
true_b = 4.2
features, labels = d2l.synthetic_data(true_w, true_b, 1000)


# 调用框架中的API来读取数据集
def load_array(data_arrays, batch_size, is_train=True):
    """构造一个PyTorch数据迭代器。"""
    dataset = data.TensorDataset(*data_arrays)
    # 使用Pytorch中的dataLoader可以构造数据集加载器,迭代器的形式返回批量的数据
    return data.DataLoader(dataset, batch_size, shuffle=is_train)


batch_size = 10
data_iter = load_array((features, labels), batch_size)

print(next(iter(data_iter)))

# 2. 构造模型
net = nn.Sequential(nn.Linear(2, 1))
# 初始化模型参数,不过一般pytorch模型中有个默认的初始化方式,不初始化也没问题
net[0].weight.data.normal_(0, 0.01)
net[0].bias.data.fill_(0)

# 3. 设置损失函数,损失函数计算得到的是个标量
loss = nn.MSELoss()

# 4. 设置优化器,我们优化的是网络的参数,并且设定一个优化的学习率
trainer = torch.optim.SGD(net.parameters(), lr=0.03)

# 5. 开始训练
num_epochs = 5
for epoch in range(num_epochs):
    for X, y in data_iter:
        l = loss(net(X), y)
        trainer.zero_grad() # 梯度清零
        l.backward() # 反向传播计算梯度
        trainer.step() # 梯度下降优化权重参数
    l = loss(net(features), labels)
    print(f'epoch {epoch + 1}, loss {l:f}')
# 模型保存: torch.save() 可以全部保存然后直接加载,也可以只保存参数,然后初始化模型之后加载参数
# 6. 模型验证
w = net[0].weight.data
print('w的估计误差:', true_w - w.reshape(true_w.shape))
b = net[0].bias.data
print('b的估计误差:', true_b - b)

输出如下:

image-20210704152453227

可以看到误差在不断下降,由于数据比较简单,模型在第二轮就基本达到最优。

线性回归实战-房价预测

点赞超过30,我们更新kaggle房价预测的内容,也欢迎大家关注我的b站账号,会不定时地更新一些深度学习的干货视频,感谢大家的支持!

dejahu的个人空间_哔哩哔哩_Bilibili

Halcon像素比例标定(误差大)-相机标定 一种简易标定: 像素比例标定,如果需要精确一些则需要在高度和宽度上都需要计算,然后求出比例系数。需要高精度标定板和相机,以及多次标定才能达到稳定的状态,这种标定简单,但是误差大。 read_image (Img0008, 'D:/00项目代码/000视觉软件/02Halocn算法20190501/04测量20190424/07_比例计算测量标定/IMG0008.jpg') rgb1_to_... 阅读详情

相关推荐

iTerm2+oh-my-zsh最全配置

iTerm2+oh-my-zsh最全配置安装前先看效果图一.安装[iTem2](https://iterm2.com/)二.安装[oh-my-zsh](https://ohmyz.sh/)三.安装[Powerline](https://powerline.readthedocs.io/en/latest/installation.html)四.安装 [Meslo](https://github.com/powerline/fonts) 字体库五.安装agnoster主题六.安装语法高亮七.安装代码补全插件八

xinximo的博客 2610

深度学习——线性神经网络:线性回归

文章目录一. 生成数据集二. 批量读取数据集三. 定义模型1.初始化模型参数2.定义模型3.定义损失函数4.定义优化算法四. 训练 一. 生成数据集 我们使用线性模型参数 w=[2,−3.4]⊤ 、 b=4.2 和噪声项 ϵ 生成数据集及其标签: y=Xw+b+ϵ \mathbf{y}=\mathbf{X} \mathbf{w}+b+\epsilon y=Xw+b+ϵ 在这里我们认为标准假设成立,即 ϵ 服从均值为0的正态分布。 为了简化问题,我们将标准差设为0.01。下面的代码生成合成数据集。 def

平什么阿的博客 1354

ais信号接收设备_国内首款基于软件无线电技术的AIS基站投入测试使用

星网宇达子公司北京凯盾环宇科技有限公司经过多年的潜心研发,成功研制出国内首台基于软件无线电(SDR)的CATON 9011 AIS基站。该基站采用软件无线电技术,利用软件数字技术代替传统的模拟电路,大大的降低了模拟器件的使用率,提高了基站的可靠性和使用年限。CATON 9011 AIS基站研制依据ITU-R M.1371-5、IEC 62320-1、IEC 61162-1等国际标准,兼容...

weixin_29057163的博客 2334

pytorch深度学习(5):pytorch实现线性回归y=w*x+b

数据 x_data = [1.0, 2.0, 3.0],y_data = [2.0, 4.0, 6.0] 模型选择:y = w * x + b 代码如下: import torch # 数据准备 x_data = torch.Tensor([[1.0], [2.0], [3.0]]) y_data = torch.Tensor([[2.0], [4.0], [6.0]]) # 设计模型 class LinearModel(torch.nn.Module): def __init__(self):

谁最温柔最有派 1558

论文分享|ECCV2022,PATnet,Cross-Domain Few-Shot Semantic Segmentation,CDFSS新基准,文末有复现教程

这篇论文提出的跨域小样本语义分割(CD-FSS)任务,旨在将源域学习的分割能力迁移到目标域,仅需少量标注样本。针对传统小样本分割方法在跨域场景性能下降的问题,作者提出了基于金字塔锚点变换的网络(PATNet),通过将域相关特征转换为域无关特征,并引入任务自适应微调推理(TFI)提升目标域适应能力。实验表明,PATNet在1-shot和5-shot设置下分别比现有方法提升8.49%和10.61%的准确率。同时,作者构建了CD-FSS基准并设计了任务难度评估指标。代码和数据集已开源,复现难度中等。

m0_74277350的博客 1095

2026年软件测试职业院校技能大赛—ERP管理平台-采购入库模块Bug定位与查找

竞赛对接软件测试相关标准,以“ERP管理平台” 为被测系统,围绕软件测试领域的主流技术及工具,考查选手面 对实际问题的综合分析能力,对测试文档、测试用例的设计能力, 对单元测试、自动化测试、性能测试、接口测试等测试工具及方 法的掌握程度,检验选手团队协作能力、组织规划能力、方法运用能力等。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 195

线性回归的实现

根据带有噪声的线性模型构造一个人造数据集。 我们使用的线性模型参数、b = 4.2 和噪声项生成数据集及其标签: 1.生成数据集 import numpy as np import torch from torch.utils import data #生成数据集及其标签 def synthetic_data(w,b,num_examples): #生成 y = Xw + b + 噪声 #生成x 均值为0 方差为1 的随机数,一共有n个样本,...

qq_46465907的博客 239

运动想象 (MI) 分类学习系列 (19) : EEG-TransNet

本文提出了一种基于注意力机制的卷积神经网络(EEG-TransNet),用于运动想象脑电图(MI-EEG)解码。该方法创新性地通过平均池化和方差池化提取多模态时间信息,并结合自注意力模块捕获长期依赖关系。消融实验表明,方差池化比最大池化更有效(p<0.05),且注意力模块和卷积编码器对特征判别性至关重要。可视化分析验证了该方法能学习到更具判别性的紧凑特征。该工作为MI-EEG解码提供了新的多尺度时间信息融合视角,代码已开源。

走在深度学习前沿的小宋 358

Pytorch线性回归(2)

本章节通过从零实现线性回归介绍训练过程

weixin_44823313的博客 276

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

伶俐角少儿编程 728

[Dify 案例实战] 构建一个基于 Dify 的个人写作助理工具-带绑定资源

想要一个懂你风格、能帮你写文章、润色文字、生成大纲的 AI 写作助手? 本文将带你从 0 到 1,完整实现一个 基于 Dify 工作流的个人写作助理工具。 我们会利用 Dify 的 LLM 节点、变量传递、文本处理、知识库与多轮对话能力.

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 276

dejahu的深度学习学习笔记02-softmax分类|Pytorch代码实现

上节博客中我们一起探讨了机器学习中的回归问题,回归问题主要是为了解决连续的问题,生活中还有很多应用场景不是连续的,预测的结果是离散的,比如识别一个垃圾的种类或者是识别一个花卉的具体种类,这种问题如果使用简单的线性回归是达不到目的的,这个时候就需要引入分类去解决,今天我们一起来看下如何去使用Pyotrch实现Softmax分类。 开始之前给大家安利一下我之前写的使用tensorflow2构建物体分类模型的博客,我在博客中详细介绍了数据集收集、模型构建和模型使用三个方面,结合视频你也可以快速构建自己的物体分类模

dejahu的博客 750

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

dejahu的深度学习学习笔记03-感知机和MLP|Pytorch代码实现

前面的笔记中我们讨论了线性回归和softmax分类,都可以看作是一层的全连接层,其中线性回归的输出是一个神经元,softmax的输出是多个神经元,softmax主要作用在损失函数的计算部分,相应地模型也需要学习到更多的权重。今天我们来看一下感知机(perceptron)以及感知机的进化版本,多层感知机(MLP)。 开始之前给大家安利一下我之前写的使用tensorflow2构建物体分类模型的博客,我在博客中详细介绍了数据集收集、模型构建和模型使用三个方面,结合视频你也可以快速构建自己的物体分类模型,快去试试吧

dejahu的博客 631

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

李宏毅深度学习回归regression(2)之Covid2019代码实战simple baseline

理论讲述 之前的一篇文章已经简单介绍了回归中的线性回归, https://blog.csdn.net/ji_meng/article/details/123590035?spm=1001.2014.3001.5501 这次依然讲回归 代码分析

ji_meng的博客 1867

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【PyTorch】深度学习实战之PyTorch实现线性回归

PyTorch实现线性回归 可调用对象: 如果要使用一个可调用对象,那么在类的声明的时候要定义一个call函数 class Foobar: def __init__(self): pass def __call__(self,*args,**kwargs): pass 其中参数*args代表把前n个参数变成n元组,**kwargsd会把参数变成一个词典,这些都是python的基础语法 def func(*args,**kwargs): print(

少年白马 5578

pytorch深度学习(6)用pytorch实现线性回归

用pytorch实现线性回归

qq_63647674的博客 1527

深度学习入门笔记之——基于 tensorflow 的回归代码实现

深度学习入门笔记系列 ( 四 )基于 tensorflow 的回归代码实现每周一三五 ,相约 7 :35 。本系列将分为 8 篇 。今天是第四篇 。总是理论有些枯燥 ,今天来动手基于 TF 框架实现两个简单的案例 ,以小搏大熟悉一下整个过程 。整体来说 ,训练神经网络分为 3 个步骤 :定义神经网络的结构和前向传播的输出结果定义损失函数以及选择反向传播优化的算法生成会话(tf.Session) 并...

weixin_33736832的博客 494

pytorch深度学习:神经网络拟合方程(回归问题)

神经网络入门的应用就是拟合方程,这篇文章就针对这个问题来熟悉pytorch怎么搭建神经网络模型。 1. 问题提出 我们要拟合的是y = x^2这个最简单的一元二次方程,首先要创建我们的x,y数据,它们都是100*1维的数据,对y加了一个噪声,让它具有一些离散性。 # 建立数据:拟合y = x^2曲线 x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # x data (tensor), shape=(100, 1) y = x.pow(2) +

qq_37333048的博客 1万+

深度学习系列笔记02线性回归与softmax回归

本博客介绍了线性回归和softmax回归,从数学公式到代码实现,再到高级API,更简洁地实现代码。参考书籍:《动手学深度学习V2》

三木今天学习了嘛の博客 2137

动手学深度学习 代码(二):线性回归

文章目录线性回归的从零开始实现线性回归的简洁实现 线性回归的从零开始实现 #%% import torch import random from d2l import torch as d2l #%% #生成数据集 def synthetic_data(w, b, num_examples): #@save X = torch.normal(0, 1, (num_examples, len(w))) y = torch.matmul(X, w) + b y += torch.norm

Rita's Blog 840

深度学习代码实战——基于RNN的时间序列拟合(回归)

1.前言 循环神经网络让神经网络有了记忆, 对于序列型的数据,循环神经网络能达到更好的效果.接着我将实战分析手写数字的 RNN分类

weixin_37763870的博客 3046

深度学习笔记(1)——pytorch实现线性回归

pytorch实现一元线性,回归代码如下: # pytorch实现一元线性回归 import numpy as np import matplotlib.pyplot as plt import torch from torch import nn, optim from torch.autograd import Variable # 定义数据集 x_data = np.random.rand(100) noise = np.random.normal(0, 0.01, x_data.shape) #

m0_46275020的博客 3279

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 405

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 234

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 426

Python+Agent入门笔记(二):列表推导式、模块和异常,这些写 Agent 前得会

接上一篇《Python+Agent入门笔记(一)》。基础语法跑通之后,这篇聊几块日常写脚本绕不开的东西。还是按 JS/Go 开发者的视角写,尽量记录我实际卡过的地方。

qq_41241612的博客 430
上一篇: 2021年Windows下安装GPU版本的Tensorflow和Pytorch
下一篇: dejahu的深度学习学习笔记02-softmax分类|Pytorch代码实现
肆十二
肆十二 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域
博客等级 码龄9年 2万+粉丝 241原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值