- 博客(38)
- 收藏
- 关注
原创 深度学习-语义分割前言
1.什么是语义分割:常见的分割任务:语义分割(semantic segmentation):对比分类任务,对图片中的每个像素进行分类。FCN实例分割(Instance segmentation):在实例分割当中是不考虑背景情况的。且针对于同一个类别中的不同目标,也用不同的颜色来进行标注。Mask R-CNN全景分割(Panoramic segmentation):可以理解为语义分割+实例分割。要求不仅要对目标进行标注,更要求对背景进行标注。Panoptic FPN2.学习计划:
2021-12-29 15:43:04 2275
原创 目标检测基础-YOLO系列
老师学习源码的过程推荐:学习某一个网络的代码的流程:先看该网络的讲解视频(先有个大概印象)--->读该网络原文(了解细节)--->读代码,结合原论文进行参考(先跑通代码-->分析网络搭建部分的代码-->分析数据预处理和损失计算的代码)YOLO v1 理论简单介绍:You Only Look Onece:Unified,Real-Time Object Detection2016 CVPR 45FPS 448×448 63.4mAP论文思想:1.将一副图像分成S
2021-11-05 22:25:03 587
原创 目标检测基础-FPN结构
Feature Pyramid Networks for Object Detection(a)是特征图像金字塔结构,针对不同尺度的目标的时候,将图片缩放到不同的尺度。针对每个不同的尺度的图片依次通过算法进行预测。缺点是效率低,根据不同尺度目标的数量越多,效率就会越低。(b)faster-rcnn经典的结构,通过一个backbone得到最终的一个特征图,然后利用这最后的特征图进行预测。缺点:针对小目标效果较差。(c)该图的结构与 ssd算法很类似,同样的把图片输入到一个backbone...
2021-11-03 13:32:16 576
原创 目标检测基础-制作自己的数据集
Pascal VOC2012数据集文件结构:1.打开项目文件夹->data->predefined_classes.txt修改标注类别信息2.打开软件(labelImg)3.设置图像文件所在目录,以及标注文件保存目录4.标注图像,并保存5.若要修改源代码在项目的libs->labelFile.py文件中修改1.数据集中主要有三个文件,一个是标注的图像信息的文件夹,一个是存放图像的文件夹,还有一个记录多少个类的txt文件。2.在当前文件夹下按住shift健
2021-11-01 22:53:25 879
原创 Python 语法的日常(2)
import numpy as npb = np.array([[1,2,3],[4,5,6],[7,8,9]])print(b[:,2])输出 [3 6 9]print(b[::])输出array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
2021-10-17 20:31:39 79
原创 Python 语法的日常(1)
今天在看源码时候发现初始化代码如下,不懂嘛个意思!特来记一下!def __init__(self, **kwargs):1.这种写法代表这个方法接受任意个数的参数2.如果是没有指定key的参数,比如单单‘apple’,‘people’,即为无指定,则会以list的形式放在args变量里面3.如果是有指定key的参数,比如item=‘apple’这种形式,即为有指定,则会以dict的形式放在kwargs变量里面...
2021-10-16 18:17:49 99
原创 目标检测基础-RCNN系列模型
开头先感谢可爱的小姐姐的细心讲解,视频网址如下:目标检测基础——RCNN系列模型(理论和代码复现)_哔哩哔哩_bilibili目录:目录RCNN过程非极大值抑制(NMS)Bounding-box regressionRCNN对语义分割的尝试:语义分割的简史:SPPnet简介Fast-RCNNFast-RCNN 训练过程Fast-RCNN的优缺点:Faster-RCNN目标候选框得实现:区域提案方法 Extract region propo...
2021-10-04 17:20:49 902
原创 各种卷积层的理解(深度可分离卷积、分组卷积、扩张卷积、反卷积)
最近看论文的时候看到了有关空洞卷积(Dilated Convolutions)的内容,看到了一篇比较不错的文章,我来做一下笔记:原文:各种卷积层的理解(深度可分离卷积、分组卷积、扩张卷积、反卷积)_gwpscut的博客-CSDN博客_深度可分离卷积目录2D卷积信号处理中,卷积被定义为:一个函数经过翻转和移动后与另一个函数的乘积的积分。在深度学习中,卷积中的过滤函数是不经过翻转的。故此,深度学习中的卷积本质上就是信号/图像处理中的互相关(cross-correlation)首先通.
2021-10-04 09:49:29 709
原创 一些应该知道的Tips(炼丹师)
1. 如今单幅图像超分基本不使用Batch Normalization为何呢?找到这样一句话,解释了EDSR为何不用BN: The EDSR authors argue that batch normalization loses scale information of images and reduces the range flexibility of activations. Removal of batch normalization layers not only increases super
2021-10-02 20:39:41 190
原创 文章怎么这么多!!!!!(超分辨率相关)
Real image pairs-based methods(真正的基于图像对的方法):Y. Shi, H. Zhong, Z. Yang, X. Yang, and L. Lin, “Ddet: Dualpath dynamic enhancement network for real-world image superresolution,” IEEE Signal Processing Letters, vol. 27, 2020.P. Wei, Z. Xie, H. Lu, Z
2021-10-02 10:21:33 475
原创 可视化pytorch训练过程
1.visdom的安装比较简单,可以直接使用pip命令启动Visdom将网址复制到浏览器打开,就可以看到visdom的主界面2.简单使用监听 loss 和 accfrom visdom import Visdomimport numpy as npimport time # 将窗口类实例化viz = Visdom() # 创建窗口并初始化viz.line([[0.,0.]], [0], win='train', opts=dict(title='los...
2021-09-25 16:39:57 143
原创 深度学习中的IoU概念理解
1、什么是IoU(Intersection over Union)IoU是一种测量在特定数据集中检测相应物体准确度的一个标准。IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IoU来进行测量。为了可以使IoU用于测量任意大小形状的物体检测,我们需要: 1.ground-truth bounding boxes(人为在训练集图像中标出要检测物体的大概范围) 2.我们的算法得出的结果范围。...
2021-09-25 10:45:49 3516 1
原创 RGB-D深度图像介绍RGBD
RGBD = RGB + Depth MapRGB :RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。Depth Map:在3D计算机图形中,Depth Map(深度图)是包含与视点的场景对象的表面的距离有关的信息的图像或图像通道。其中,Depth Map 类似于灰度图像,只是它的...
2021-09-25 10:41:57 1578
原创 如何解决RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu
像这种情况,一般就是数据和模型一个在cpu,一个在GPU,或者用于计算的数据,有一些已经放到GPU里,有一些还存在CPU中,这里提供一个思路。首先找到报错的行,看看计算时都用到哪些变量或者数据,然后使用.is_cuda这个属性去查看到底哪些是在GPU上,哪些是在CPU上,然后把它们统一都放在CPU,或者统一放在GPU上就可以。举个例子:报错提示在utils.py 这个文件的第46行有问题,然后进入这个文件,定位到46行打印idx_range和reverse_mapping查看是不是同时在G.
2021-09-25 09:12:46 9429
原创 【机器学习】Lp距离、欧式距离、曼哈顿距离、切比雪夫距离
目录1. 闵可夫斯基距离(Minkowski distance,Lp距离)2. 曼哈顿距离(Manhattan distance)3. 欧式距离(Euclidean distance)4. 切比雪夫距离(Chebyshev distance)1. 闵可夫斯基距离(Minkowski distance,Lp距离)2. 曼哈顿距离(Manhattan distance)3. 欧式距离(Euclidean distance)4. 切比雪夫距离(Chebyshev di
2021-09-23 15:15:26 601
原创 【机器学习】 朴素贝叶斯
贝叶斯定理原理:贝叶斯定理解决了现实生活李经常遇到的问题:已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求P(B|A).朴素贝叶斯分类器:(假定每个样本与其他样本的特征都不相关)朴素贝叶斯分类方法,是利用贝叶斯定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。一般我们可以认为属性,样本不相关性越强效果越好!朴素贝叶斯分类器的公式:朴素贝叶斯和贝叶斯定理的最大差别就是朴素贝叶斯假定我们
2021-09-21 20:39:21 262
原创 深度可分离卷积
常规卷积操作对于一张5×5像素、三通道(shape为5×5×3),经过3×3卷积核的卷积层(假设输出通道数为4,则卷积核shape为3×3×3×4,最终输出4个Feature Map,如果有same padding则尺寸与输入层相同(5×5),如果没有则为尺寸变为3×3卷积层共4个Filter,每个Filter包含了3个Kernel,每个Kernel的大小为3×3。因此卷积层的参数数量可以用如下公式来计算:N_std = 4 × 3 × 3 × 3 = 108深度可分离卷积逐通.
2021-09-20 10:27:16 396
原创 深度神经网络的退化问题
线性代数中退化矩阵矩阵退化:研究的是向量组中的向量模型退化:研究的是神经元节点 首先,退化矩阵 也叫 奇异矩阵。行列式为0,非满秩,也就是说矩阵内存在线性相关的向量组。矩阵的退化?什么是线性相关?--非零常量个数等于1时,对应向量肯定是零向量--个数大于1时候,说明至少有两个向量线性相关(零向量和任意向量线性相关)退化程度越高,线性相关的向量...
2021-09-17 08:59:07 3955
原创 目标检测的指标(AP,mAP)
目录1.IOU的概念2.TP TN FP FN的概念3.precision(精确度)和recall(召回率)4.概念举例5.单个指标的局限性1.IOU的概念介绍mAP和AP之前应该先了解一下IOU,IOU就是衡量预测狂和真实框的重合程度。计算IOU的公式为:可以看到IOU是个一个壁纸,既并交...
2021-09-16 17:10:42 5378 1
原创 研究生自救-写论文篇
重点:如何写论文的初稿抵制住拖延的欲望,避免迟迟不能动笔。开始写论文前有几项重要的准备工作:1.Review and Renew Your Literature Search.(回顾自己以前做的笔记,包括所阅读过的文章的笔记和那些与你课题相关的笔记,你应当跟进最新的研究进展)2.Determine Who Your Audience Is.*what kind of paper is it-research,review,tutorial.*what journal is it in
2021-09-15 20:47:59 372
原创 神经网络中的filter(滤波器)和kernel(内核)的概念
kernel: 内核是一个2维矩阵,长 × 宽;filter:滤波器是一个三维立方体,长× 宽 × 深度, 其中深度便是由 多少张内核构成; 可以说kernel 是filter 的基本元素, 多张kernel 组成一个filter;那么, 一个filter 中应该包含多少张 kernel 呢?答:是由输入的通道个数所确定, 即,输入通道是3个特征时,则后续的每一个filter中包含3张kernel ; ...
2021-09-14 10:14:49 3805 2
原创 研究生自救指南-阅读论文篇
1.读论文应该分为两个阶段第一个阶段,粗略浏览论文看它是否值得花时间阅读,了解这篇文章大概在讲什么。借助检索平台,来搜索在摘要处的关键词来了解文章的主要内容。(阅读过程中,不管处于哪个阶段只要你觉得该文章不是你感兴趣或者要研究的方向,就可以开始停止阅读了。)接下来,看看所阅读文献的关键字和题目,如果不是你想要的就可以停止了。2.如果以上没有问题就可以开始看文章的摘要。3.可以直接去看文章的结论,先跳过中间部分(实验设计、前言、结论、讨论)。如果结论和你自己感兴趣的内容无关就可以停止了
2021-09-13 12:49:41 1626
原创 动手学深度学习v2-GRU
!pip install d2limport torchfrom torch import nnfrom d2l import torch as d2lbatch_size, num_steps = 32, 35train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)def get_params(vocab_size, num_hiddens, device): num_inputs = num_ou.
2021-09-12 09:26:31 526
原创 动手学深度学习v2-文本预处理
# 文本预处理 核心:数据变成所需的训练资料import collectionsimport refrom d2l import torch as d2l# 将数据集读取由多条文本行组成的列表中d2l.DATA_HUB['time_machine'] = (d2l.DATA_URL + 'timemachine.txt', '090b5e7e70c295757f55df93cb0a180b9691891a') # load一本书def read_time_.
2021-09-03 11:57:12 991 2
原创 动手学深度学习v2-长短期记忆网络(LSTM)
忘记门:将值朝0减少输入门:鉴定不是忽略掉输入数据输出门:决定是不是使用隐状态候选记忆单元:记忆单元:隐状态:做了tanh可以保证Ht在正一到负一之间。通过Ot控制是丢弃还是输出。...
2021-09-02 20:02:09 119
原创 动手学深度学习v2-残差网络ResNet
import torchfrom torch import nnfrom torch.nn import functional as Ffrom d2l import torch as d2lclass Residual(nn.Module): def __init__(self, input_channels, num_channels, use_1x1conv=False, strides=1): super().__init__() s.
2021-08-30 23:14:18 328
原创 动手学深度学习v2-批量归一化
import torchfrom torch import nnfrom d2l import torch as d2l# gamma、beta是可以学习的参数,moving_mean 和 moving_var 为全局的均值和方差def batch_norm(X, gamma, beta, moving_mean, moving_var, eps, momentum): # 通过 `is_grad_enabled` 来判断当前模式是训练模式还是预测模式 if not torch..
2021-08-30 22:17:36 430
原创 动手学深度学习v2-LeNet
1.输入为32*32的图片,放到一个5*5的卷积层中然后该卷积层的输出通道是6,高宽为28*28.该层输出可以被认为是feature map(特征图)2.接下来是个2*2的pooling层,高宽被压缩到14*14,但输出通道依旧是6.3.然后接下来的卷积层,卷积层的核依旧是5*5的,使得特征图变成了10*10的。这里输出通道数是16.4.再接一个pooling层,输出通道数不变,特征图大小变为5*5.5.再把数据拉成一个向量,输入到全连接层上,图上的Gauss现在已经不用了。可以认为后接..
2021-08-29 02:04:01 400
原创 动手学深度学习v2-池化层
import torchfrom torch import nnfrom d2l import torch as d2l# 实现池化层的正向传播,无步幅,无填充def pool2d(X, pool_size, mode='max'): # mode:max,avgs,X是输入 p_h, p_w = pool_size Y = torch.zeros((X.shape[0] - p_h + 1, X.shape[1] - p_w + 1)) for i in range(Y.shape.
2021-08-28 23:21:00 227
原创 动手学深度学习v2-卷积层的多输入多输出通道
多个输入和输出通道:输出通道:每个输出通道可以识别特定模式。输入通道:输入通道核识别并组合输入中的模式。我们可以认为在输出通道中获取到图片的局部特征,然后经过输入通道得到一个更加完整的特征。总结:1.输出通道数是卷积层的超参数2.每个输入通道有独立的二维卷积核,所有通道结果相加得到一个输出通道结果3.每个输出通道有独立的三维卷积核# 实现一下多输入通道互相关运算---------------------------------import d2l import torch
2021-08-28 23:19:57 449
原创 动手学深度学习v2-卷积层
import torchfrom torch import nnfrom d2l import torch as d2l# 互相关运算def corr2d(X, K): # X表示样本输入,K表示核矩阵 h,w 分别表示长和高 h, w = K.shape Y = torch.zeros((X.shape[0]-h+1, X.shape[1]-w+1)) for i in range(Y.shape[0]): for j in range(Y.shape[1]): .
2021-08-28 02:51:31 482
原创 动手学深度学习v2-pytorch神经网络基础
层和块:import torchfrom torch import nnfrom torch.nn import functional as Fnet = nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10))X = torch.rand(2, 20)net(X)nn.Sequential定义了一种特殊的ModuleModule任何一个层和神经网络应该都是Module的子类自定义块:cla...
2021-08-27 16:05:32 196
原创 动手学深度学习v2-Softmax回归从零开始实现
!pip install d2limport torchfrom IPython import displayfrom d2l import torch as d2lbatch_size = 256train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)num_inputs = 784num_outputs = 10W = torch.normal(0, 0.01, size=(num_inputs, num_ou.
2021-08-17 15:33:35 384
原创 动手学深度学习v2-求导部分的练习
练习为什么计算二阶导数比一阶导数的开销要更大? 在运行反向传播函数之后,立即再次运行它,看看会发生什么。 在控制流的例子中,我们计算d关于a的导数,如果我们将变量a更改为随机向量或矩阵,会发生什么?此时,计算结果f(a)不再是标量。结果会发生什么?我们如何分析这个结果? 重新设计一个求控制流梯度的例子。运行并分析结果。 使f(x)=sin(x),绘制f(x)和df(x)dx的图像,其中后者不使用f′(x)=cos(x)。 import torch#2x = torch.arange(4
2021-08-16 02:36:06 1368
原创 动手学深度学习v2-线性代数课后习题
练习证明一个矩阵A\mathbf{A}A的转置的转置是 A\mathbf{A}A:(A⊤)⊤=A(\mathbf{A}^\top)^\top = \mathbf{A}(A⊤)⊤=A。给出两个矩阵A\mathbf{A}A和B\mathbf{B}B, 显示转置的和等于和的转置:A⊤+B⊤=(A+B)⊤\mathbf{A}^\top + \mathbf{B}^\top = (\mathbf{A} + \mathbf{B})^\topA⊤+B⊤=(A+B)⊤.给定任意方矩阵A\mathbf{A}A,A+A⊤
2021-08-14 07:20:32 345
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人