自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 pytorch进阶(一)-----------可视化工具TensorBoard的使用

tensorboard的运行机制为在python中记录要可视化的数据存入硬盘中,在使用tensorboard终端读取硬盘中的记录进行可视化

2022-02-02 16:22:57 496

原创 pytorch基础(十六)----------学习率调整策略

学习率(lr),是用来空值更新的步伐,防止梯度爆炸。以打高尔夫球为例,在我们打第一杆的时候很难一杆进洞,所有需要一个比较大的力量去击球,当球离洞比较近时,就需要调整力的大小,轻轻地击球才能进洞。学习率调整策略代码展示:import torch# 选择优化器optimizer = optim.SGD(net.parameters(), lr=LR)# 设置学习率调整策略scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_siz

2022-01-29 15:48:57 1822 5

原创 pytorch基础(十五)-----------优化器optimizer

pytorch的优化器的作用:管理并更新模型中可学习参数的值, 使得模型输出更接近真实标签(更新采用是梯度下降)一、optimizer的基本参数defaults:优化器超参数state:参数的缓存,如momentum的缓存param_groups:管理的参数组_step_count:记录更新次数,学习率调整中使用(比如要在第n次迭代后降低学习率)二、optimizer的基本使用方法zero_grad():清空所有参数的梯度,因为张量不会自动清零会自动累加,在梯度求导之前需要进行梯度清零ste

2022-01-27 15:42:22 3344

原创 pytorch基础(十四)-----------损失函数(二)

1、nn.L1Loss功能:计算inputs与target之间的绝对值2、nn.MSELoss功能:计算inputs与target之差的平方主要参数:reduction:计算模式,可为none/sum/mean(none:逐个元素进行计算,sum:所有元素求和,返回标量,mean:加权平均,返回标量)...

2022-01-25 15:17:30 1630

原创 pytorch基础(十三)----------损失函数(一)

一、损失函数的概念损失函数:用来衡量模型输出与真实标签的差异,计算一个样本的一个差异代价函数:计算整个训练集loss的均值目标函数:等于代价函数加上正则项二、常见的损失函数1、交叉熵损失函数nn.CrossEntropyLoss(weight=None, size_average=None, ignore_index=-100, reduce=None, reduction=‘mean’)功能:nn.LogSoftmax()和nn.NLLLoss()结合, 进行交叉熵计算参数:weight

2021-12-30 15:53:34 796

原创 pytorch基础(十二)---------权值初始化

正确的权值初始化可以使模型快速收敛,但是错误的权值初始化则会导致梯度消失和梯度爆炸一、梯度消失和梯度爆炸下图表示网络传播的过程这里对W2求偏导,将公式化简得到当H1趋于0时就会引发梯度消失,趋于无穷时就会引发梯度爆炸二、Xavier方法和Kaiming方法1、Xavier初始化nn.init.xavier_uniform_()方差一致性:保持数据尺度维持在适当范围内,通常方差为1适用激活函数:饱和函数,如sigmoid、tanh2、Kaiming初始化nn.init.kaimin

2021-12-28 11:30:43 311

原创 pytorch基础(十一)--------池化层、线性层、激活函数层

一、池化层池化运算:对信号进行‘收集‘并‘总结’, 类似于水池收集水资源收集:多变少,总结:最大值/平均值1、nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)功能:对二维信号(图像)进行最大值池化参数:kernel_size:池化核尺寸stride:步长padding:补边dilation:池化核间隔大小ceil_mode:尺寸向上取整

2021-12-28 10:49:42 824

原创 pytorch基础(十)---------卷积层

一、卷积卷积运算:卷积核在输入图像上滑动,相应位置上进行对应位置相乘再相加卷积核:又称为滤波器,可以认为是某种模式,某种特征卷积过程类似于用一个模板去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取二、卷积----nn.Conv2d()nn.Conv2d(in_channels, out_channels,kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode=‘zer

2021-12-27 16:00:09 2316

原创 pytorch基础(九)---------模型创建与nn.Module

一、网络模型的创建步骤构建子模块就相当于卷积、激活、池化、全连接等操作,拼接子模块就相当于将所有子模块徐合成一个网络结构。在初始化网络结构时,加载的是__init__中进行的卷积、激活、池化、全连接等操作,将图像张量传入网络结构时进行的是forward()中的拼接好的网络结构二、nn.Module属性所有网络结构都需要继承nn.Module模块在我们自己创建网络结构时需要进行导入nn模块,代码为import torch.nn as nnimport torch.nn.functional a

2021-12-27 15:17:38 418

原创 pytorch基础(八)----------transforms图像增强(二)

注意:以下方法也都是作用在transforms.Compose([ ])方法中的一、transforms------图像变换1、transforms.Pad(padding, fill=0, padding_mode=‘constant’)功能:对图像边缘进行填充参数:padding:设置填充大小,当为a时,上下左右均填充a个像素;当为(a,b)时,上下填充b个像素,左右填充a个像素;当为(a,b,c,d)时,左、上、右、下分别填充a、b、c、d个像素padding_mode:填充模式,共有四

2021-12-27 12:51:26 2159

原创 pytorch基础(七)------------transforms图像增强(一)

一、数据增强概念:数据增强又称为数据增广,它是对训练集进行变换,是训练集更丰富,从而让模型更具有泛化能力注意:以下方法都是作用在transforms.Compose([ ])中的。二、transforms-----裁剪1、transforms.CenterCrop(size)功能:从图像中心裁剪图片参数:size:所需裁剪的图片尺寸2、transforms.RandomCrop(size,padding=None,pad_if_needed=False,fill=0,padding_mod

2021-12-27 10:59:39 2031

原创 pytorch基础(六)--------transforms图像预处理

一、transforms运行机制在我们配置conda环境时,安装了torch和torchvision。其中的torchvision就是计算机视觉工具。在torchvision中有几个比较重要的方法:torchvision.transforms:常用的图像预处理方法torchvision.datasets:常用的数据集dataset实现(提供了常用的数据集),如MNIST,CIFAR-10,ImageNet等torchvision.model:提供了常用的网络模型在transforms中提供了大量

2021-12-21 15:15:09 845

原创 pytorch基础(五)----------DataLoader和Dataset

一、DataLoadertorch.utils.data.DataLoader()功能:构建可迭代的数据装载器其中几个比较常用的参数:dataset:Dataset类,决定数据从哪读取以及如何读取batchsize:每批次的大小num_works:是否多进程读取数据shuffle:每个epoch是否打乱顺序drop_last:当样本数不能被batchsize整除时,是否舍弃掉最后一批数据代码展示:from torch.utils.data import DataLoadertrain_

2021-12-21 14:38:05 202

原创 pytorch基础(四)-----------autograd自动求导

autograd自动求导1、torch.autograd.backward(tensors, grad_tensors=None, retain_graph=None, create_graph=False)功能:自动求取梯度参数:tensors:用于求导的张量,如lossretain_graph:保存计算图(注意:当我们要进行二次梯度回传时,要将此处设置为True)create_graph:创建导数计算图,用于高阶求导grad_tensors:多梯度权重以y=(x+w)∗(w+1)y=(x

2021-12-21 14:11:49 146

原创 pytorch基础(三)----------计算图与动态图机制

一、计算图机制计算图是用来描述运算的有向无环图,它有两个主要元素:结点和边,结点表示数据,如向量、矩阵、张量;边表示运算,如加减乘除卷积下面通过一个例子来理解一下计算图:例如:用计算图表示y=(x+w)∗(w+1)y=(x+w)*(w+1)y=(x+w)∗(w+1)先将原式分解为a=x+wa=x+wa=x+w、b=w+1b=w+1b=w+1、y=a∗by=a*by=a∗b,再通过计算图的定义结点表示数据,边表示运算来绘制计算图,如下图所示在大多数情况中计算图经常被用来进行梯度求导二、动态图机制

2021-12-21 13:16:13 210

原创 pytorch基础(二)----------张量的拼接、切片、索引以及数学运算

张量的操作一、张量的拼接1、torch.cat(input, dim=0, out=None)功能:将张量按维度dim进行拼接参数:input:要操作的张量dim:要拼接的维度2、torch.stack(input, dim=0, out=None)功能:在新创建的维度上进行拼接参数:input:要操作的张量dim:要拼接的维度cat和stack的区别是,cat方法不会扩展维度,而stack会扩展一个新的维度进行拼接二、张量的切分1、torch.chunk(input, chunks

2021-12-20 16:10:18 568

原创 pytorch基础(一)-----------张量的创建

张量在深度学习中是一个经常使用的,张量是一个多维数组,它是标量、向量、矩阵的高维拓展(1*1的数组成为标量、一维数组成为向量,二维数组称为矩阵)。张量的属性有:dtype:张量的数据类型shape:张量的形状device:张量所在的设备,例如GPU/CPUdata:被包装的tensorgrad:data的梯度grad_fn:创建张量的function,是自动求导的关键requires_grad:是否需要梯度is_leaf:是否是叶子节点张量的创建一、直接创建1、通过数据创建torch

2021-12-06 12:54:42 1480

原创 opencv-python 识别轮廓

本次识别的目标是识别图片中的圆形和椭圆,由于霍夫变换可以识别圆形但是无法直接识别椭圆,所以直接使用了识别轮廓的方法。具体步骤:1、读取图像并进行灰度值转化2、对转化灰度值后的图像进行二值化处理3、进行轮廓检测4、对所有轮廓进行遍历5、求出所有轮廓的周长,筛选我们需要的周长范围6、获取轮廓中心存入列表7、对轮廓中心列表进行遍历,通过我们所需识别形状的位置对列表进行切片操作8、对选出来的轮廓进行绘制即可示例代码:import cv2import mathimport numpy as

2021-12-02 11:40:43 6027 1

原创 xgboost算法

算法篇xgboost算法xgboost算法属于集成学习中的boosting类,又叫极端梯度提升树,是基于GBDT做的改进,但是基于的树模型都是回归树,因为回归树会计算出一个具体的值,这样才能比较真实结果和预测结果相差多少,在进行下一次的训练。训练过程:一个模型一个模型串行训练测试过程:一个样本输入,并行预测,预测结果相加,即可获得最终结果GBDT首先来了解一下GBDT,GBDT叫做梯度提升树,是基于BDT(提升树)的改进,所谓提升树,就是后一棵树对前一棵树进行提升,就像集成学习中boosting

2021-09-01 22:23:41 1496

原创 深度学习基础

深度学习深度学习使用的是神经网络,是通过人类的神经构建出来的。人的神经是由很多个神经元组成的,它们之间相互连接,组成神经网络。同理深度学习的神经网络是由多个人工神经元组成的,人工神经元又叫感知机,整体分为三层:输入层、隐层(隐藏层)、输出层,但是和人的神经网络有所不同的是,深度学习的神经网络同层之间不会相互连接。整体上输入层、隐层和输出层,隐层还可以展开分为其它层,由于它既不属于输入也不属于输出,所有统称为隐层。全连接当前层和上一层所有神经元完全相连,称为全连接,如上图就属于全连接的情况。全连接可

2021-08-22 18:30:23 812

原创 算法导包合集

算法篇导包合集**有监督学习算法朴素贝叶斯算法伯努利朴素贝叶斯from sklearn.naive_bayes import BernoulliNB高斯朴素贝叶斯from sklearn.naive_bayes import GaussianNBfrom sklearn.datasets import make_blobs# **datasets**:意为数据集,make_blobs:产生随机数的数据集from sklearn.model_selection import train

2021-08-17 15:34:58 79

原创 评估指标(下)

算法篇评估指标前面讲述分类算法的评估指标,下面来说一下回归算法的评估指标。R2R2就是score,也就是我们在分类算法中经常说的准确率,但是在回归算法中就不能叫准确率了,叫R2。R2=1−uvR2=1-\frac{u}{v}R2=1−vu​u=∑(y−y的预测结果)2u=∑(y-y的预测结果)^2u=∑(y−y的预测结果)2v=∑(y−y的均值)2v=∑(y-y的均值)^2v=∑(y−y的均值)2最好的情况就是u=0,真实结果等于预测结果,R2等于1比较差的情况是u=v,预测结果为均值,也

2021-08-17 08:32:36 140

原创 随机森林算法

算法篇集成学习集成学习通过训练多个学习器,然后把这些学习器组合起来,以达到更好的预测性能的目的。集成学习分为两类:Bagging:弱学习器的生成没有先后顺序,可以并行训练,如果是分类算法预测结果为多个弱学习器预测结果的众数,如果是是回归算法则是平均值Boosting:弱学习器的生成有先后顺序,后一个弱学习器是之前学习器的基础上训练的,预测结果为多个弱学习器预测结果之和随机森林随机森林就是属于集成学习中Bagging类的算法,弱学习器类型全部都是决策树,很多树组合在一起就变成了森林。boots

2021-08-16 19:45:46 138 3

原创 逻辑回归算法

算法篇逻辑回归算法逻辑回归算法属于有监督学习算法中的分类算法,因为逻辑运算只会出现True或False,所以逻辑回归只能做二分类问题。逻辑回归算法是将线性回归的运算结果放入sigmoid函数中,得出一个(0,1)之间的数,大于0.5就属于类1,小于0.5就属于类0逻辑回归的结果是通过线性回归计算出来的,线性回归质量的好坏会直接影响逻辑回归的结果,影响线性回归的就是回归系数。对于线性回归来说是使用随机梯度下降的方法计算的,也就是最小二乘法来计算回归系数的。对于逻辑回归也是使用随机梯度下降的方法,

2021-08-16 16:52:00 381

原创 朴素贝叶斯算法(下)

算法篇朴素贝叶斯多项式朴素贝叶斯多项式朴素贝叶斯多用于出现次数作为特征的数据,特征数据值必须是非负的

2021-08-16 11:08:03 79

原创 朴素贝叶斯算法(上)

算法篇朴素贝叶斯算法朴素贝叶斯算法属于有监督学习中的分类算法,基于贝叶斯理论和特征相互独立的假设,因为假设特征相互独立让问题变得简单,因此称为朴素要使用朴素贝叶斯算法,首先要了解的就是概率。条件概率公式:当A、B相互独立时,P(AB)=P(A)∗P(B)P(AB) = P(A) * P(B)P(AB)=P(A)∗P(B)全概率公式:贝叶斯公式:朴素贝叶斯计算步骤:一个数据集中有两个样本(B1,B2, B3)、(C1,C2,C3)和一个标签的两组(A1,A2)给定一个测试样本(D1

2021-08-15 23:57:05 95

原创 线性回归算法(下)

算法篇线性回归泛化能力:模型在未见过的数据集上的表现能力算法目的:模型泛化能力强,尽量降低在训练集上的错误率,最终的目的希望在测试集上有很低的错误**欠拟合欠拟合:在训练集上拟合的不够,在训练集上的效果很差,在测试集上的效果也很差,泛化能力弱原因:模型过于简单。【适当增加模型的复杂度】数据集量少。【增加数据量】特征数量少。【增加特征,或多项式特征处理】多项式特征处理多项式特征处理就是最少增加两列,一列是x0x^0x0,一列是x2x^2x2…这样就能将线性方程转化为非线性,多项式

2021-08-15 20:26:08 89

原创 线性回归算法(上)

算法篇线性回归线性回归属于有监督学习中的回归算法,只能处理标签是连续数据类型的数据。通过寻找特征和标签之间的关系,生成线性方程,所以线性回归算法只针对线性回归方程。多元线性回归方程:y=a1x1+a2x2+....+anxn+by=a_1x_1+a_2x_2+....+a_nx_n+by=a1​x1​+a2​x2​+....+an​xn​+b假设具有n个特征的样本和标签的关系是线性的,可以将其定义为多元线性回归:其中,n表示特征数目,因为还有一个回归参数b是没有未知数的所以需要添加一列x0=1x

2021-08-15 18:58:02 129

原创 k-means算法

算法篇k-meansk-means属于无监督学习中的聚类算法,只适用于没有标签的数据集,用来处理聚类问题,需要自己来划分预测结果。所谓聚类问题,就是给定一个数据集D,每个样本有n个属性,使用某种算法将数据集D分为k个子集,使每个子集内部元素之间的相似度尽可能的高,使集合和集合之间的各个元素之间的相似度尽可能的低,每个子集称为一个簇。聚类的目的:类内相似,类外相异算法原理从数据D随机选取k个元素,作为k个簇各自的聚类中心,k个元素可以是数据中的元素也可以不是数据中的元素分别计算剩下的元素和k个

2021-08-15 15:36:28 428

原创 决策树算法

算法篇决策树决策树的基本组成部分包括:根节点、分节点和叶子节点根节点和分节点通常用方块表示,叶子节点通常用椭圆表示。决策树的关键在于怎样建立出这样的一个树,怎样建立出一个达到要求的前提下深度最小的树。决策树是由好几个算法组成的,每个算法都有不同的方法来解决构建树的问题。决策树的优点推理过程比较容易理解,决策推理过程可以表示为if-else的形式推理过程完全取决于属性变量的取值特点可以自动忽略对目标没有贡献的属性,能够判断属性的重要性决策树中的算法CLS、ID3、C4.5、CART四

2021-08-12 22:34:05 348

原创 评估指标(上)

算法篇回归算法

2021-08-11 08:37:09 139

原创 knn算法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-08-09 19:32:50 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除