自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(51)
  • 资源 (6)
  • 收藏
  • 关注

转载 高斯函数详解

这其实很好理解,如果sigma也就是标准差越大,则表示该密度分布一定比较分散,由于面积为1,于是尖峰部分减小,宽度越宽(分布越分散);随着sigma的增大,方差增大,整个高斯函数的尖峰逐渐减小,整体也变的更加平缓,则对图像的平滑效果越来越明显,即图像会变得更模糊。高斯函数的积分是误差函数error function,尽管如此,其在整个实线上的反常积分能够被精确的计算出来,使用如下的高斯积分。a是曲线尖峰的高度,b是尖峰中心的坐标,c称为标准方差,表征的是bell钟状的宽度。图像可以具有任意数量的通道。

2023-04-25 18:26:08 7111

原创 最容易理解的ConViT: Improving Vision Transformerswith Soft Convolutional Inductive Biases

之前的博客介绍了transformer和transformer在CV领域应用的VIT论文,有兴趣的同学可以参考transformer、VIT。VIT虽然在性能上已经达到了目前图像分类的SOTA的程度,但是它需要依赖巨大的数据集,比如Google的JFT都是以亿为单位计算的。显然,作为我们这种个人玩家是无法应用的,那么Facebook继VIT之后,推出ConVit解决了该问题,今天这篇博客就是介绍大家可以应用的在CV领域的transformer-ConVit,话不多说,还是先上连接:ConVi...

2021-11-25 19:31:09 2280

转载 最容易理解的贝叶斯算法原理

1. 简介 在网络上介绍贝叶斯定理,贝叶斯网格的资料随处可见,我在此处就简单给大家的阐述一下什么是贝叶斯,贝叶斯方法其实在高中的时候我们就已经开始接触了,高中的概率大部分讲述的就是贝叶斯方法。 其实在贝叶斯方法真正的被人们认可之前,频率派是概率的主导,假设又一袋球,里面有若干红球和黑球,在贝叶斯之前你随便问一个人拿出红球的概率是多少,他会说50%。嘿!懵逼不?没有黑球红球的数量怎么知道的50%,频率派中的思考方式是不是红球就是黑球,所以50%。2.1 贝叶斯方法的提出 托马斯·贝...

2021-11-19 13:08:55 5044

转载 一文看懂训练集loss 与验证集loss关系说明

train loss 不断下降,test loss不断下降,说明网络仍在学习;train loss 不断下降,test loss趋于不变,说明网络过拟合;(max pool或者正则化)train loss 趋于不变,test loss不断下降,说明数据集100%有问题;train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;或者是数据集有问题(数据集标注错误数据比较多)train loss 不断上升,test loss不断上升,说明网络结构设计

2021-11-17 10:42:26 8523 4

原创 最容易理解的AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(VIT)解析

之前连载了很多CNN中的注意力机制的相关paper,也介绍了Transformer的原理,包含encoder、decoder、multi-head attention等。如果有兴趣的朋友或者对attention方面基础较差的朋友可以找一下我之前发的相关博客。这篇文章介绍一下将transformer引入到CNN中的文章(Vision Transformer)Vit,它虽然没有DERT早,但是它是将transformer原有结构直接引入CV中的第一篇文章。所以,继上一篇最容易理解的Transfo...

2021-11-17 10:25:07 2972

原创 plt.imshow()无法显示两站图片?

在做测试的时候,显示图片,从cv2读取image之后发现只能显示一张图片,如果plt.imshow()显示来张图片的话,第二章会覆盖第一张图片的位置,其实只要添加一行命令即可:plt.show(),举个例子:img1=plt.imread("test1.jpg")plt.imshow(img1)plt.show()img2=plt.imread("test2.jpg")plt.imshow(img2)plt.show()...

2021-09-08 11:19:31 757

转载 一文看懂训练集loss与测试集loss关系

train loss 不断下降,test loss不断下降,说明网络仍在学习;train loss 不断下降,test loss趋于不变,说明网络过拟合;(max pool或者正则化)train loss 趋于不变,test loss不断下降,说明数据集100%有问题;train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;或者是数据集有问题(数据集标注错误数据比较多)train loss 不断上升,test loss不断上升,说明网络结构设计

2021-09-07 09:38:29 3050 1

转载 keras.fit epoch回调函数详解

在每个training/epoch/batch结束时,如果我们想执行某些任务,例如模型缓存、输出日志、计算当前的auc等等,Keras中的callback就派上用场了。Example 记录每个batch的损失函数值import keras # 定义callback类class MyCallback(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.losses = []

2021-09-06 15:09:53 904

转载 网络模型早停earlystopping详解

早停!? earlystopping for keras   为了获得性能良好的神经网络,网络定型过程中需要进行许多关于所用设置(超参数)的决策。超参数之一是定型周期(epoch)的数量:亦即应当完整遍历数据集多少次(一次为一个epoch)?如果epoch数量太少,网络有可能发生欠拟合(即对于定型数据的学习不够充分);如果epoch数量太多,则有可能发生过拟合(即网络对定型数据中的“噪声”而非信号拟合)。早停法旨在解决epoch数量需要手动设置的问题。它也可以被视为一种能够避免网络发生过拟合的正则化

2021-09-06 15:00:26 2196

转载 如何查看Linux cpu核数、版本等信息

如何查看Linux cpu核数、版本等信息CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数1、查看CPU信息(型号):[root@iZ2ze1rl2qyewq63peun8vZ ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c24 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz2、查查物理cpu个数:..

2021-09-03 08:31:57 3369 1

转载 详细说明 NVIDIA-SMI GPU信息显示

在进行深度学习实验时,GPU 的实时状态监测十分有必要。今天详细解读一下 nvidia-smi 命令。这里写图片描述上图是服务器上 GeForce GTX 1080 Ti 的信息,下面一一解读参数。上面的表格中的红框中的信息与下面的四个框的信息是一一对应的:GPU:GPU 编号;Name:GPU 型号;Persistence-M:持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态;Fan:风扇转速,从0到100%之间变动;Tem

2021-09-03 08:17:27 1342

原创 CNN中卷积和池化计算公式

卷积计算公式1、卷积层输入特征图(input feature map)的尺寸为:H(input)×W(input)×C(input)H(input)表示输入特征图的高W(input)表示输入特征图的宽C(input)表示输入特征图的通道数(如果是第一个卷积层则是输入图像的通道数,如果是中间的卷积层则是上一层的输出通道数2、卷积层的参数有如下几个输出通道数为K正方形卷积核的边长为F...

2021-08-27 10:28:52 12080

转载 pytorch 加载模型报错:‘function‘ object has no attribute ‘copy‘

报错原因:保存模型时应是:torch.save(model.state_dict(), model_path)如果写成:torch.save(model.state_dict, model_path)就会报错: state_dict = state_dict.copy() AttributeError: 'function' object has no attribute 'copy'...

2021-08-27 09:28:18 1664 1

转载 loss函数取对数的作用和意义

平时在一些数据处理中,经常会把原始数据取对数后进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有:1. 缩小数据的绝对数值,方便计算。例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。2. 取对数后,可以将乘法计算转换称加法计算。3. 某些情况下,在数据的整个值域中的在不同区间的差异带来的影响不同。例如,

2021-08-19 10:30:19 1337

转载 jupyter notebook安装Nbextensions

一、基本操作1、通过cmd打开jupyter notebook。jupyter notebook如果没出错,就会在浏览器中打开notebook文件。2、在file菜单栏下有本地文件夹的路径,可以点击相应的文件打开本地的notebook文件。3、可以在new菜单栏下新建一个python3文件。二、notebook快捷键的使用1、执行单元格:ctrl + enter2、执行当前单元格,并移动到下一个单元格:shift + enter3、执行当前单元格,并新建、移动到下一个单元格:

2021-08-16 10:23:54 916

转载 tf.gather_nd 详解及例子

官网链接https://tensorflow.google.cn/api_docs/python/tf/gather_ndtf.gather_nd( params, indices, name=None)按照indices的格式从params中抽取切片(合并为一个Tensor)indices是一个K维整数Tensor。例子:import tensorflow as tfa = tf.Variable([[1, 2, 3, 4, 5],

2021-08-13 15:16:06 327

转载 tf.cast()函数使用

tf.cast()函数的作用是执行 tensorflow 中张量数据类型转换,比如读入的图片如果是int8类型的,一般在要在训练前把图像的数据格式转换为float32。cast定义:cast(x, dtype, name=None) 第一个参数 x: 待转换的数据(张量) 第二个参数 dtype: 目标数据类型 第三个参数 name: 可选参数,定义操作的名称int32转换为float32: import tensorflow as tf ...

2021-08-13 15:06:14 771

转载 tf.split()函数的用法

在tensorflow 的代码里经常看到tf.split()这个函数,今天来扒一扒这个API的用法tf.split( value, num_or_size_splits, axis=0, num=None, name='split') 1 2 3 4 5 6 7 8Splits a tensor into sub tensors.If num_or_size_splits is an in...

2021-08-13 14:39:54 439

原创 最全的基于COCO的Mask RCNN 模型(避坑指南)

这两天有点思路准备修改基于Mask RCNN网络模型的思路,思路整理了一下,准备先跑一下Mask RCNN模型,最起码先把base模型跑通再跑实验嘛,结果这个Mask RCNN模型的demo环境搞了两天(⊙﹏⊙)b,为了这年这两天光荣的日子,还是写一篇博客纪念一下。1、实验环境 跑通一个模型肯定需要补充对模型的了解,找一个对模型复现比较好的base模型可以对模型细节更加理解通透(只看论文虽然模型觉得已经掌握,但是细节还是看代码),并且对自己的实验或者训练自己的数据集更方便的bas...

2021-08-13 10:54:46 3382 7

转载 nvidia-smi 报错:无法与 nvidia driver 通信

用 GPU 跑模型时,提示 cuda 不存在,明明已经装过!不会 nvidia 驱动又崩了吧!赶紧用 nvidia-smi 查看一下,提示如下错误:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.网上搜了一下,用下面的方法顺利解决了问题 ,参考:https://

2021-08-11 08:19:36 238

原创 CBNet论文详解

在现有的基于CNN的检测器中,骨干网是提取基本特征的非常重要的组成部分,检测器的性能很大程度上依赖于骨干网络。CBNET的主要目的是利用现有的主干网络例如ResNet、ResNeXt等构建更强大的主干网络。具体地说,作者提出了一种新的策略,通过相邻主干之间的复合连接组合多个相同的主干网络,从而形成一个更强大的主干网络,称为复合主干网络(Composite Backbone Network:CBNet)。通过这种方式,CBNet将前一个主干网的输出特征,即高级特征,作为输入特征的一部分逐步的传...

2021-08-04 14:38:07 2415 1

原创 Cascade R-CNN解析

在目标检测中,需要通过IoU (intersection over union)阈值来定义正负。用低IoU阈值(例如0.5)训练的目标检测器通常会产生噪声检测。但是,随着IoU阈值的增加,检测性能趋于下降。产生这个问题主要有两个原因:1、随着网络训练的深入,正样本迅速减少导致过拟合;2、训练和推理使用不同的IOU阈值很容易出现检测问题。 为了解决IOU阈值设置的问题,作者提出适用于多阶段目标检测结构模型的:Cascade R-CNN用来解决这些问题。它由一系列的检测器来...

2021-08-03 15:20:29 2842

原创 准确率,精确率(AP)与召回率(AR)

准确率、精确率和召回率是在目标检测中非常重要的指标,那么它们能反映出模型的结果中的哪些问题呢?如下:准确率、精确率和召回率的解释:True Positive(真正,TP):将正类预测为正类数True Negative(真负,TN):将负类预测为负类数False Positive(假正,FP):将负类预测为正类数误报 (Type I error)False Negative(假负,FN):将正类预测为负类数→漏报 (Type II error)准确率、精确率和召回率的公式:准确率(

2021-07-19 13:29:20 6985

原创 最容易理解的Transformer解析

之前介绍了通道注意力SENET、空间注意力Spatial Transformer Networks、混合域注意力CBAM、坐标注意力CANET、自注意力Non-local Neural Networks和自注意力与混合域相结合的DANET。主流的注意力模型基本都了解到了,那么接下来,介绍一下目前大热的Transformer。 在2017年,Google提出的Attention Is All You Need在NIPS发表,它完全去掉了RNN和CNN的网络结构,而仅仅使用注意...

2021-07-02 18:57:53 2379 2

原创 Dual Attention Network for Scene Segmentation(DANET)

之前的文章介绍了一下通道注意力、空间注意力、混合域注意力还有自注意力机制。今天介绍一下利用自注意力和混合域注意力相结合进行图片分割的网络-DANET(Dual Attention Network for Scene Segmentation ),这是发表在CVPR2019上的文章。 在这篇paper中,作者通过基于自注意机制捕获丰富的上下文依赖来解决场景分割任务。不同于以往通过多尺度特征融合来获取上下文的方法,作者提出了一种双注意网络(Dual Attention Netw...

2021-06-29 17:21:54 3969

转载 点积相似度、余弦相似度、欧几里得相似度

看starspace的时候发现它实现了dot和cos两种similarity的度量方式,这里总结一下:余弦相似度衡量两个向量在方向上的相似性,而不care两个向量的实际长度,A和B的长度即使是一个超级短一个超级长的情况下,二者的余弦相似性也可能为1(即theta=0,此时两个向量重合);存在的问题[1]:余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感。比如用户对内容评分,5分制。A和B两个用户对两个商品的评分分别为A:(1,2)和B:(4,5)。我们分别用两种方法计算相似度。使用余弦

2021-06-28 18:01:39 2286

转载 均值,期望,方差,标准差,协方差

1.均值均值,其实是针对实验观察到的特征样本而言的。比如我们实验结果得出了x1,x2,x3……xn这n个值,那么我们的均值计算是1/N * (x_{1}+x_{2}+…x_{n})比如我们进行掷骰子,掷了六次,点数分别为2,2,2,4,4,4,这六次的观察就是我们的样本,于是我们可以说均值为(2+2+2+4+4+4)/6=3。但是千万不能说期望是3,下面解...

2021-06-18 16:56:03 3569

原创 Non-local Neural Networks

上一篇关于注意力机制介绍到2021CVPR上发表的关于嵌入位置信息的注意力机制Coordinate Attention for Efficient Mobile Network Design,有兴趣的同学可以阅读一下。今天

2021-06-18 16:41:16 3818

原创 Coordinate Attention for Efficient Mobile Network Design

最近的移动网络设计研究表明,通道注意(例如,挤压和激励注意)对提升模型性能具有显著的有效性,但它们通常忽略了位置信息,而位置信息对于生成空间选择性注意地图非常重要

2021-06-08 14:57:21 5934 5

原创 CBAM(Convolutional Block Attention Module)

前面介绍了CVPR2017发表的通道注意力机制:地址和

2021-06-06 14:39:40 11235 1

原创 STN(Spatial Transformer Networks)

上一篇介绍了通道注意力机制SENET,有兴趣的同学可以去看一下SENET.

2021-06-04 14:22:54 10782 4

原创 SENet(Squeeze-and-Excitation Networks)

注意力机制:硬注意力和软注意力。硬注意力:是具体到某一数值,例如:分类中的概率最高的一项。硬注意力是不连续的,不可微,所以很难进行训练。神经网络中一般注意力指的是软注意力机制:是指某一区间范围内的连续数值。那么,重点是软注意力是可微的,则我们可以利用神经网络的正向传播进行数值传递,并利用方向传播进行梯度更新,学习到较好的注意力权重。就注意力关注的域来分:空间域(spatial domain)通道域(channel domain)层域(layer domain)混合域(mix.

2021-06-03 16:53:32 3941

原创 空洞卷积计算感受野

空洞卷积感受野的计算:空洞卷积感受野的大小分两种情况:(1)不带padding的空洞卷积:若空洞卷积率为dilate rate则感受野尺寸=(dilate rate-1)×(k-1) + k #k为卷积核大小;不带padding的感受野其实就是添加空洞之后的卷积核大小;(2)带padding的空洞卷积:若空洞卷积率为dilate rate则感受野尺寸=2×(dilate rate-1)×(k-1) + k #k为卷积核大小;...

2021-02-22 14:55:06 1814 2

转载 Opencv Mat转Tensor

在tensorflow中,输入数据格式为Tensor格式,但是使用opencv读入的图片是Mat格式,需要对其进行转换。1 Mat转Tensor1.1 方法一使用循环进行赋值,输入的image为3通道彩色图片,所以对应的Tensor大小为1*Size*Size*3,同时image为BGR格式,转化为RGB格式。void mat2Tensor(Mat &image, Tensor &t) { resize(image, image, Size(IMAGE_SI...

2021-01-20 21:17:54 1980

转载 图像质量评价指标之 PSNR 和 SSIM

1. PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比给定一个大小为m×nm×n的干净图像II和噪声图像KK,均方误差(MSE)(MSE)定义为:MSE=1mn∑i=0m−1∑j=0n−1[I(i,j)−K(i,j)]2MSE=1mn∑i=0m−1∑j=0n−1[I(i,j)−K(i,j)]2然后PSNR(dB)PSNR(dB)就定义为:PSNR=10⋅log10(MAX2IMSE)PSNR=10⋅log10(MAXI2MSE...

2021-01-16 19:00:28 913

原创 交叉熵损失函数详解

交叉熵详解

2021-01-01 08:45:35 2820

原创 基于tensorflow2的yolov4训练自己的数据集(三)

基于tensorflow2.0的yolov4训练自己的数据集(三) 在windows和linux分别训练了基于tensorflow2的yolov4模型,将方法记录下来,方便其他同学参考借鉴。内容较多,分批写出来。上一次写到生成了基于darknet的yolov4模型:上一集,继续往下进行。一、将darknet模型转化为tensorflow模型在官网提供的github项目,直接可以将darknet转化为tensorflow的pb模型,转化地址。将darknet的yolov4模型放入到/...

2020-12-25 10:15:01 366

原创 基于tensorflow2的yolov4训练自己的数据集(二)

目录一、windows系统训练基于darknet环境的yolov4模型1.1 修改部分必要的配置文件1.1.1 数据集配置文件修改1.1.2 模型配置文件修改1.2 训练darknet环境下的yolov4模型二、linux系统训练基于darknet环境的yolov4模型基于tensorflow2.0的yolov4训练自己的数据集(二) 在windows和linux分别训练了基于tensorflow2的yolov4模型,将方法记录下来,方便其他同学参考借鉴。内容较多,...

2020-12-22 12:31:36 1692 1

原创 基于tensorflow2的yolov4训练自己的数据集

基于tensorflow2.0的yolov4训练自己的数据集(一) 在windows和linux分别训练了基于tensorflow2的yolov4模型,将方法记录下来,方便其他同学参考借鉴。内容较多,分批写出来:目录一、制作数据集1、下载LabelImage2、安装LabelImage4、制作数据集5、制作VOC2007数据集6、生成VOC2007数据集的文件二、利用DarkNet训练你的数据集1、下载yolov4工程2、迁移学习,下载选中文件3、...

2020-12-21 17:23:57 2103 3

转载 纳什均衡 (Nash Equilibrium)

概念“纳什均衡“是由美国数学家小约翰·福布斯·纳什(John Forbes Nash Jr),在1950年获得美国普林斯顿大学的博士学位的只有28页的博士论文中提出的一个“博弈论”的概念,根据纳什的说法,“一个纳什平衡点是当其余参与者的策略保持不变时,能够令参与者的混合策略最大化其收益的一个n元组”。[1]“纳什均衡“广泛运用在经济学、计算机科学、演化生物学、人工智能、会计学、政策和军事理论等方面。1994年,纳什和其他两位博弈论学家约翰·海萨尼和莱因哈德·泽尔腾共同获得了诺贝尔经济学奖。[2]

2020-12-14 17:10:34 16195

Internet Explorer

JS调试

2014-10-11

TinyXml源代码

TinyXml xml c++

2014-09-16

STL C++总结

STL C++总结 学习STL好资料 学习STL好资料 学习STL好资料

2014-09-11

Linux内核裁剪的具体过程和方法

Linux内核裁剪的具体过程和方法,简单实用,有具体的步骤

2013-12-27

μCOS-II 入门 嵌入式

嵌入式实时操作系统μCOS-II 入门资料,非常适合初学者

2013-08-23

空空如也

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

TA关注的人

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