计算机视觉
文章平均质量分 65
计算机视觉
Py零零
这个作者很懒,什么都没留下…
展开
-
pytorch进阶(一)-----------可视化工具TensorBoard的使用
tensorboard的运行机制为在python中记录要可视化的数据存入硬盘中,在使用tensorboard终端读取硬盘中的记录进行可视化原创 2022-02-02 16:22:57 · 529 阅读 · 0 评论 -
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 · 1915 阅读 · 5 评论 -
pytorch基础(十五)-----------优化器optimizer
pytorch的优化器的作用:管理并更新模型中可学习参数的值, 使得模型输出更接近真实标签(更新采用是梯度下降)一、optimizer的基本参数defaults:优化器超参数state:参数的缓存,如momentum的缓存param_groups:管理的参数组_step_count:记录更新次数,学习率调整中使用(比如要在第n次迭代后降低学习率)二、optimizer的基本使用方法zero_grad():清空所有参数的梯度,因为张量不会自动清零会自动累加,在梯度求导之前需要进行梯度清零ste原创 2022-01-27 15:42:22 · 3417 阅读 · 0 评论 -
pytorch基础(十四)-----------损失函数(二)
1、nn.L1Loss功能:计算inputs与target之间的绝对值2、nn.MSELoss功能:计算inputs与target之差的平方主要参数:reduction:计算模式,可为none/sum/mean(none:逐个元素进行计算,sum:所有元素求和,返回标量,mean:加权平均,返回标量)...原创 2022-01-25 15:17:30 · 1661 阅读 · 0 评论 -
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 · 836 阅读 · 0 评论 -
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 · 331 阅读 · 0 评论 -
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 · 868 阅读 · 0 评论 -
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 · 2351 阅读 · 0 评论 -
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 · 461 阅读 · 0 评论 -
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 · 2251 阅读 · 0 评论 -
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 · 2086 阅读 · 0 评论 -
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 · 874 阅读 · 0 评论 -
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 · 219 阅读 · 0 评论 -
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 · 183 阅读 · 0 评论 -
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 · 240 阅读 · 0 评论 -
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 · 605 阅读 · 0 评论 -
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 · 1540 阅读 · 0 评论 -
深度学习基础
深度学习深度学习使用的是神经网络,是通过人类的神经构建出来的。人的神经是由很多个神经元组成的,它们之间相互连接,组成神经网络。同理深度学习的神经网络是由多个人工神经元组成的,人工神经元又叫感知机,整体分为三层:输入层、隐层(隐藏层)、输出层,但是和人的神经网络有所不同的是,深度学习的神经网络同层之间不会相互连接。整体上输入层、隐层和输出层,隐层还可以展开分为其它层,由于它既不属于输入也不属于输出,所有统称为隐层。全连接当前层和上一层所有神经元完全相连,称为全连接,如上图就属于全连接的情况。全连接可原创 2021-08-22 18:30:23 · 936 阅读 · 0 评论