自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解最大似然估计、最大后验概率估计和贝叶斯公式

在博客最大似然估计中,通过简单的例子对最大似然估计原理有了一个直观的理解;在博客朴素贝叶斯分类器中,对贝叶斯公式有了一个粗浅的理解,而且我们知道了贝叶斯分类器原理就是最大后验概率估计。这篇博客主要是深入理解最大似然估计、最大后验概率估计、贝叶斯公式的数学原理和它们之间的联系。基本概念理解 想要搞清楚上述几个原理,首先要弄明白概率、统计、概率函数和似然函数概率 概率研究的是:模型和参数已知,预测模型产生某结果的概率。统计 统计研究的和概率正...

2020-08-19 14:03:04 448

原创 生成式模型与判别式模型的理解与对比

在机器学习中,我们常常利用数据来对模型建模,不同的建模方式产生了两种不同的模型:生成式模型、判别式模型。判别式模型 由数据学习决策函数Y=f(X)或者条件概率P(Y|X)作为预测模型。判别式模型学习的是不同类别数据的差异性,最终得到最佳分类面生成式模型 由数据学习联合概率P(Y,X)作为预测模型,生成式模型学习的是不同类别数据的相似性,得到一个相似度概率分布,相似度最高的类别即为预测类别对比对比 判别式模型 生成式模型 特点 寻找不...

2020-08-18 17:12:59 1054

原创 朴素贝叶斯分类器原理解析与python实现

贝叶斯分类器是以贝叶斯原理为基础的分类器的总称,是一种生成式模型,朴素贝叶斯分类器是其中最简单的一种。要高明白贝叶斯分类器的原理,首先得明白一些基本概念。预备知识基本概念 先验概率:根据统计/经验得到的某事情发生的概率,比如北京下雨的概率可以通过以往的经验或者统计结果得到 后验概率:在一定条件下某事情发生的概率,比如北京天空出现乌云(因)会下雨(果)的概率 条件概率:事情发生时某条件出现的概率,比如北京下雨(果)会出现乌云(因)的概率贝...

2020-08-18 15:39:22 10331 8

原创 交叉熵损失函数原理深层理解

说起交叉熵损失函数「Cross Entropy Loss」,相信大家都非常熟悉,但是要深入理解交叉熵损失函数的原理和作用,还得溯本追源才能对其有一个真实的理解与认知。交叉熵 交叉熵是用来度量两个概率分布的差异性的,因此它被广泛的应用于机器学习和深度学习,用来衡量模型学习到的分布和真实分布的差异。要理解交叉熵,需要从信息量、熵、相对熵几个概念开始信息量 信息奠基人香农认为“信息是用来消除随机不确定性的东西”,因此他提出了信息量的概念,信息量表示一条信息消除不...

2020-08-14 18:24:32 4213 1

原创 逻辑回归原理解析及python实现

前两篇讲了线性回归和感知机,铺垫已经做好了,现在终于可以讲讲逻辑回归了。通过之前的博客我们知道,感知机是线性模型在分类问题上的尝试与改进,那么逻辑回归可以看做是感知机的优化,不了解的小伙伴可以参考博客线性回归和感知机引言 为了实现分类的功能,感知机通过sign函数将线性模型的输出y映射成1和-1,sign函数如下 sign函数是一个非连续...

2020-08-12 18:28:12 294

原创 感知机原理解析与python实现

讲完线性回归本来应该乘热打铁讲讲逻辑回归的,但是我觉得应该先讲解感知机的原理,它不仅可以帮助理解分类和回归,也能帮助理解逻辑回归。引言感知机原理

2020-08-12 14:52:10 249

原创 线性回归原理解析及python实现

研究机器学习的小伙伴应该都知道,机器学习主要有两大类模型:分类和回归。这里先大概说一下分类和回归的区别与联系,方便大家对机器学习其他模型有一个宏观的认识。分类和回归联系 其实分类和回归模型本质上是一样的,它们都是通过已有数据构建(求解)一个模型,其中x表示一个n维的特征向量,y表示经过模型的处理后得到的输出结果,而模型的具体表达式可以是千变万化的,这里我们不展开讨论。区别 分类和回归的最主要区别在于模型的输出y,回归模型的输出y是一个连续性的数值型数据;分...

2020-08-12 11:18:10 661

原创 最大似然估计直观理解(简单易懂)

在理解最大似然的过程中我发现,单纯的对极大似然的理论和数学公式进行解释比较晦涩难懂,下面我通过讲解一个自己设计的例子帮助理解。例子描述 假设现在有1万个灯泡,想要知道这些灯泡的合格率(能点亮为合格)? 如果将1万个灯泡都测试一遍来计算其合格率显然是不现实的,这种情况我们可以对1万个灯泡随机采样,抽取100个灯泡并测试,这100个灯泡的合格率假设通过测试知道80个灯泡可以被点亮,剩下20个不能点亮,那么我们就会估计这1万个灯泡的合格率为80%。极大似然估计...

2020-08-10 08:53:27 1376

原创 深入理解卷积神经网络工作原理

卷积神经网络的核心思想就是设计多个卷积层,卷积层里设计一系列卷积核,输入数据经过卷积层中的卷积核处理,一层层向前推进得到最终的输出数据,这个过程我们称为数据的特征提取。卷积核 从上面的概述知道,卷积核是卷积神经网络的核心,这也是它为什么叫卷积神经网络的原因。那么要理解卷积神经网络的原理,就必须理解卷积核,而要理解卷积核,要从图像处理开始理解。 ...

2020-08-05 15:42:31 1682

原创 RuntimeError: ONNX export failed: Couldn‘t export Python operator SwishImplementation

将pytorch模型转为onnx模型,代码如下weights_path = '模型权重的路径'net = EfficientNet.from_name('efficientnet-b2', {'num_classes': 2})net.load_state_dict(torch.load(weights_path))net.eval()torch.onnx.export(net, input, 'efficientnet_ss.onnx')报错:RuntimeError: ONNX ex

2020-07-18 11:27:32 4239 3

原创 EfficientNet原理解析

说到分类网络的优化方法,大家首先想到的可能是加深网络、增加宽度、提高分辨率、添加shortcut等方法,你可能会发现,大家都只是使用某一种方法来进行网络优化,而今天要说的这个EfficientNet网络,则是融合加深网络、增加宽度、提高分辨率这三个方面来对模型进行优化。EfficientNet的作者认为加深网络、增加宽度、提高分辨率这三个方法不应该是相互独立的,因此提出了提出了compound model scaling算法,能达到性能相似的情况下,大大减少模型参数量和提升速度!几种mod...

2020-07-07 16:31:37 1290

原创 YOLO v3原理解析

YOLO v3是从YOLO v1,YOLO v2逐步改进而来,在继承了v1,v2很多内容的基础上,也有了很多新的改进,一步步提高网络的性能,v1,v2的基础有利于v3的理解,请不熟悉v1,v2的小伙伴先参考一下博客YOLO v1原理解析,YOLO v2原理解析YOLO系列原理概述 通过特征提取网络对输入图像提取特征,得到一定size的feature map,比如13*13,然后将输入图像分成13*13个grid cell,接着如果ground truth中某个object的中...

2020-07-03 11:32:32 614

原创 YOLO v2原理解析

YOLO v2是YOLO v1的一个升级版本,使其变的Better,Faster,Stronger,下面我从Better和Faster两个角度来说明一下(Stronger部分没看懂)Better YOLO有两个缺点:一个缺点在于定位不准确,另一个缺点在于和基于region proposal的方法相比召回率较低,为了解决这两个问题,YOLO v2使用了很多trick,下面来一一说明Batch Normalization 相信大家对BN已经很熟悉了,如今BN已经...

2020-07-03 11:14:27 678

原创 YOLO v1原理解析

目标检测网络兴起的那几年,最火的就是大家所熟知的R-CNN系列,正是因为R-CNN系列是two-stage两阶段的检测网络,所以其检测速度比较慢,这个时候就有大神将two-stage整合成one-stage,设计出了YOLO网络,意思是you only look ones,下面就讲解一下YOLO网络的检测原理网络结构YOLO的网络结构很简单,基本的卷积层+最后两个全连接层 网络的输入输出输入:图片,resize成448*448,将图片分成7*7...

2020-07-01 16:24:28 368

原创 RefineDet网络解析

论文:Single-Shot Refinement Neural Network for Object Detection论文链接:https://arxiv.org/abs/1711.06897 RefineDet网络的设计初衷是在保持one-stage目标检测速度的同时提高检测效果.RefineDet网络结构在我看来可以理解为FPN+ARM(类RPN)+ODM.RefineDet网络结构FPN:FPN网络首先通过一个backbone产生特征金字塔(对应图中上半部分的特征...

2020-06-12 10:29:02 421

原创 Linux pip和conda换清华源

pip设置清华源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simpleconda设置清华源添加源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/conda config --add channels https://mirrors.tuna.tsinghua.edu

2020-06-08 10:57:50 1995

原创 RetinaNet网络解析

RetinaNet是何凯明大神提出的一种网络,该网络结构采用FPN网络的结构(请参考博客FPN网络原理解析),其主要创新点在于提出了一个新的损失函数Focal Loss(请参考博客Focal Loss损失函数详解),主要用于解决one-stage目标检测中正负样本极不平衡的问题。关于FPN网络、损失函数Focal Loss的原理上面两篇博客已经写的很详细了,我这里主要说一下以下几点:特征金字塔构建 在ResNet结构上构建FPN,在P3~P7层上构建特征金字塔anchor...

2020-06-04 16:13:43 2648

原创 Focal Loss损失函数详解

Focal Loss损失函数是何凯明大神在RetinaNet网络中提出的,主要目的是为了解决one-stage目标检测中正负样本极不平衡的问题,下面我们来详细理解一下该函数。背景什么是正负样本极不平衡? 目标检测算法为了定位目标会生成大量的anchor box,而一幅图中目标(正样本)个数很少,大量的anchor box处于背景区域(负样本),这就导致了正负样本极不平衡two-stage为什么可以避免样本极不平衡? two-stage方法在第一阶段生成候...

2020-06-02 18:28:43 6174

原创 FPN(Feature Pyramid Networks)网络原理解析

前言 在图像处理中,为了解决多尺度的问题,设计了图像金字塔;在卷积神经网络中,由于网络提取的不同特征层由低到高尺寸逐渐减小,自然形成了特征金字塔。FPN网络就是在特征金字塔的基础上对模型结构引入新的设计,从而提高了对小目标的检测精度。特征金字塔的特点 特征层由低到高所提取的信息丰富程度不同,特征层越高提取的语义信息level越高 特征层由低到高分辨率逐渐减小,感受野却逐渐增大...

2020-06-01 18:06:49 3985 1

原创 SSD网络原理解析

SSD网络是继YOLO之后的one-stage目标检测网络,是为了改善YOLO网络设置的anchor设计的太过于粗糙而提出的,其设计思想主要是多尺度多长宽比的密集锚点设计和特征金字塔,下面我将详细的解析SSD网络结构SSD网络结构精简版详细版通过上面这个图,大家可以清楚的看到SSD的网络结构主要分为以下几个部分:VGG16 Base Layer Extra Feature Layer Detection Layer NMS补充说明:在整个SSD网络中,其...

2020-05-30 16:44:40 17122 3

原创 目标检测网络概述

自从卷积神经网络在分类问题上取得很大进步以后,学者们纷纷想办法将卷积神经网络迁移到目标检测、目标分割等领域。目标检测领域发展到现在,出现了很多里程碑式的网络结构和设计思想,可以说是百花齐放,大放异彩,但是总体上大概可以将目标检测分为三个类别:two-stage one-stage archor-freetwo-stage 相信大家都知道,是大神何凯明最早将卷积神经网络引入到目标检测中来,从而创造了two-stage的RCNN系列目标检测网络,从RCNN到fast RC...

2020-05-30 13:13:56 1470

转载 常用损失函数介绍

转载于:https://blog.csdn.net/Tianlock/article/details/88232467#L1L2_5 损失函数是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负值函数,通常用L(Y,f(x))来表示,损失函数越小,模型的鲁棒性越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:...

2020-05-29 16:50:05 669

原创 onnx调用报错IndexError: _Map_base::at

问题介绍:将pytorch模型转换为onnx,调用onnx报错IndexError: _Map_base::at原因分析:pytorch>=1.3,模型转换为onnx并导出时,torch.onnx.export()函数发生变换,需要设置参数keep_initializers_as_inputstorch.onnx.export(model, input, 'model.onnx', verbose=True, keep_initializers_as_inputs=True)pytorc

2020-05-23 11:28:46 2398 2

原创 c/c++ 动态内存 malloc() free()和 new() delete()

动态内存分配的优势  大家可以移步这个链接查看(为什么需要动态内存分配)c语言的malloc() free()  首先需要包含头文件#include<malloc.h>或者#include<stdlib.h>  函数原型extern void *malloc(unsigned int num_bytes):分配长度为num_bytes字节的内存块,当内存分配成功,返回该内存的地址,分配失败返回NULL#include<stdlib.h>//动态定义

2020-05-23 11:15:33 147 1

原创 c/c++ 为什么需要动态内存分配

预备知识 代码中定义的普通变量,会在栈区分配一个对应大小的内存空间,栈区的存储空间小; 代码中定义的动态变量则是在堆区,堆区的存储空间相比于栈区大很多;为什么需要动态内存相比与定义一个普通变量,定义一个动态变量能使用的内存空间更大,当你的某个变量有很多的存储需求时,动态分配内存能满足你的需求 当你需要定义的某个变量的大小是可变的且范围较大,这个时候你定义一个普通变量,会分配一个固定大小的内存,当需要存入的数据较小的时候,大量的内存空间被浪费了,数据较大时容易溢出,你为了防止内存溢...

2020-05-23 11:13:12 1535

原创 conda 虚拟环境创建,使用,删除

  大前提大家要明确的是:创建的虚拟环境都是基于python的,要使用conda 创建虚拟环境,首先需要先安装anaconda.那么为什么要创建虚拟环境呢?同一个系统下,如果你需要用到同一个包的不同版本,你安装时会发生冲突,此时虚拟环境可以创建相互独立的python运行环境,解决此类问题conda常用的命令 1)conda list 查看安装了哪些包。 2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境 3)conda update ...

2020-05-21 17:52:21 653

原创 OpenCV PIL 读取的图像格式差异

OpenCV(python)opencv通过imread()函数读取图像,返回值image有以下几个属性:1.image是ndarray类型2.image.shap表示图像的形状(H W C),其中C表示通道数/深度,它的顺序为BGR3.image.dtype表示图像数据类型unit8(0-255)4.没有.size属性import cv2image = cv2.imread('test.jpg')print type(image) # out: numpy.ndarrayp

2020-05-16 17:37:44 1115

转载 查看Linux系统架构类型的5条常用命令

导读很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令。无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎可以通吃所有 Linux 发行版,例如:RHEL、CentOS、Fedora、Scientific Linux、Debian、Ubuntu、Linux Mint、OpenSUSE 等等。1...

2020-05-08 11:21:58 268

原创 Linux ssh 登录 上传下载文件

  当需要在多台电脑上进行操作时,或者你要操作的电脑不在你身旁,那么通过一台电脑控制另外一台\多台电脑就显得很有必要了,使用SSH就可以很方便的实现多台电脑的控制,我这里主要是访问公司的服务器,利用服务器中的GPU来训练模型.下面对几个常用功能进行讲解说明:你正在操作的电脑称为本地电脑,你将要登录\访问的电脑称为远程电脑远程登录命令:ssh username@ipusername:...

2020-05-05 16:37:43 613

转载 linux apt-get pip conda 添加国内源

apt-getapt在etc/apt/sources.list 里记录了官方库的地址(美国),但是速度不能保证,可以添加清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/1. 获取root权限sudo -s2. 备份sources.listcp sources.list sources.list .bak3....

2020-05-05 14:18:15 652

原创 目标检测PASCAL VOC 数据集简介

一、简介 PASCAL VOC 挑战赛主要有 Object Classification 、Object Detection、Object Segmentation、Human Layout、Action Classification 这几类子任务 PASCAL VOC 2007 和 2012 数据集总共分 4 个大类:vehicle、household、animal、perso...

2020-05-05 13:46:38 232

转载 更改pip源与conda源至国内镜像,显著提升下载速度

pip篇:经常在使用python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼。网上有很多可用的源,例如豆瓣:http://pypi.douban.com/simple/...

2020-04-30 15:45:58 1055

原创 MobileNetV3网络深入解析与Pytorch实现

论文名:Searching for MobileNetV3论文地址:https://arxiv.org/pdf/1905.02244.pdf正文  MobileNetV3是Google继MobileNet V1,V2之后的又一个应用于移动端的轻量级网络,V3结合了V1的depthwise separable convolutions(详情移步MobileNetV1),V2的inv...

2020-04-11 09:14:53 2064

原创 SENet网络深入解析

论文名:Squeeze-and-Excitation Networks下载地址:https://arxiv.org/abs/1709.01507正文  SENet是Momenta公司发表于2017CVPR,赢得了ImageNet最后一届(ImageNet 2017)的图像识别冠军.针对网络性能的优化,GoogleNet的inception结构构造多尺度感受野来提升特征提取能力;R...

2020-04-11 09:12:37 767

原创 ShuffleNetV2 网络深度解析与Pytorch实现

原理部分转载于:https://blog.csdn.net/u014380165/article/details/81322175论文:ShuffleNet V2: Practical Guidelines for Ecient CNN Architecture Design论文链接:https://pan.baidu.com/s/1so7aD3hLKO-0PB8h4HWliw这篇是E...

2020-04-06 10:37:08 2927 3

原创 ShuffleNetV1 网络深度解析与Pytorch实现

正文1.原理解析channel shuffleShuffleNet Unit2.网络结构3.代码实现论文名:An Extremely Efficient Convolutional Neural Network for Mobile Devices下载地址:https://arxiv.org/pdf/1707.01083.pdf正文 Shuffle...

2020-04-06 09:52:01 1256 4

原创 MobileNetV2 网络深度解析与Pytorch实现

正文1.原理解析Linear Bottleneck Inverted Residual Blocks2.网络结构3.代码实现论文名:MobileNetV2: Inverted Residuals and Linear Bottlenecks下载地址:https://arxiv.org/pdf/1801.04381.pdf正文 MobileNet V...

2020-04-02 18:28:53 1473 1

原创 MobileNetV1 网络深度解析与Pytorch实现

正文1.原理解析depthwise separable convolutions标准卷积和深度可分离卷积的比较2.网络结构模型超参数3.代码实现参考论文名:MobileNets: Efficient Convolutional Neural Networks for MobileVision Applications下载地址:https://arxiv.org/...

2020-04-02 15:42:38 1716

原创 CNN网络模型的发展概述

写在开篇 这个系列主要介绍卷积神经网络模型(CNN)在发展进程中的重要的、有代表性的CNN模型的原理和实现。这第一篇文章简要介绍一下CNN发展进程中的几个关键节点(即经典CNN模型)。正文 神经网络(现在大家更喜欢称为深度学习)的发展经历了三起三落(这里我就不展开叙述了,有兴趣的童鞋可以自己搜索相关内容了解),而CNN神经网络的发展为此做出了巨大贡献,从最基...

2020-03-29 17:21:34 1257

原创 DenseNet网络深度解析与Pytorch实现

正文1.原理解析2.网络结构3.基于Pytorch的DenseNet实现参考资料论文名:Densely Connected Convolutional Networks下载地址:https://arxiv.org/pdf/1608.06993.pdf正文 该论文的作者借鉴了ResNet模型跨层连接的思想,也有自己的创新,从feature map作为...

2020-03-29 17:12:47 729

空空如也

空空如也

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

TA关注的人

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