自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wonengguwozai的博客

从事计算机视觉、深度学习相关研究

  • 博客(343)
  • 资源 (2)
  • 收藏
  • 关注

转载 分类问题为什么要使用交叉熵而不是MSE损失函数

假设现在有一个分类问题:feature是2维的向量目标类别有3种一共有4个样本:上面虽然使用的是Sigmoid函数,其实分类问题使用的是softmax函数,softmax可以看做sigmoid在对分类问题上的推广。import matplotlib.pyplot as pltimport numpy as npA = np.linspace(0, 1, 100)plt.plot(A, A ** 2 * (1 - A))plt.xlabel("absolute error")p

2020-11-11 19:20:45 1685

转载 经典算法--最大存水量问题

本文为转载文章,转载链接题目:给出一个数组代表围柱的高度,求能围柱的最大的水量,例如数组{ 5,2,3,2,4 },最大水量为5。如下图:黄色部分为围柱,绿色部分是能够围住的水,图中围柱的高度依次为 5,2,3,2,4最多能围住的水量是5。这里写图片描述思路:求出每个柱子上面能够存多少水,然后将每根柱子的存水量相加便能得到总的存水量,为求出每根柱子上能够存多少水,就要求出每根柱子左边最高的和右边最高柱子,然后用两者的最小值减去当前柱子的高度。 例如图中从左到右第二根柱子的高度为2,它左边最高柱子的

2020-10-20 10:55:45 828 1

转载 人脸识别损失函数梳理与分析/相关方法整理

人脸识别损失函数梳理与分析(转载)人脸识别损失函数疏理与分析人脸识别中Softmax-based Loss的演化史人脸识别:损失函数总结

2020-10-12 15:38:52 233

原创 求前K个最大的数(排序问题)

求前K个最大的数(排序问题)问题:g给出无序序列,求前k大(小)的数,或求第k大(小)的数。分析:1、利用快排的思想 : 快速排序每一轮其实将左右两个子序列排好序(分割点后序列中的所有数字均大于分割点前的所有数字)如果分割点是K那么很容易得到前k大(小)的数字。时间复杂o(n)2、堆排序,可以直接找到前K个最大的数即可。堆排序重要操作:1、堆调整(基于大顶堆或小顶堆调整),2、基于堆调整进行建堆 3、将对顶元素删除,并使用最后一个叶节点的元素覆盖堆顶 4、进行堆调整,5、反复进行3,、4步,直到

2020-09-05 09:31:18 2614

原创 面试中值得关注的问题(项目+通用问题)

机器学习理论类:写出全概率公式&贝叶斯公式模型训练为什么要引入偏差(bias)和方差(variance)? 证CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型如何解决过拟合问题?One-hot的作用是什么?为什么不直接使用数字作为表示决策树和随机森林的区别是什么?朴素贝叶斯为什么“朴素naive”?kmeans初始点除了随机选取之外的方法LR明明是分类模型为什么叫回归梯度下降如何并行化梯度下降如何并行化LR中的L1/L2正则项是啥简述决策树构建过程解

2020-06-18 11:43:32 426

原创 朴素贝叶斯算法

朴素贝叶斯算法为传统的机器学习算法,之所以称之为“朴素”,即为简单:在计算过程中认为样本的每个属性是独立的,这一假设事计算更为简单。重要参考说明:目前笔者根据上方参考,基本旅顺了大致计算过程和代码实现过程,但对其中的先验与后验问题有些模糊,待后续明晰后再系统整理。...

2020-06-18 11:40:26 243

原创 K-Means聚类算法

引:K-Means算法作为经典且简单的聚类算法,在很多目标检测算法中使用(如YOLOv3)相关参考K-Means目标:对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大K-Means目标公式化:E=Σi=1kΣxϵCi∣∣x−ui∣∣22E=\Sigma_{i=1}^k\Sigma_{x\epsilon C_i}||x-u_i||_2^2E=Σi=1k​ΣxϵCi​​∣∣x−ui​∣∣22​其中E为总平方误差,k为k个簇,C_i.

2020-06-17 10:31:23 298

原创 从YOLOv4看模型优化方法

YOLOv4中相关优化方法1.Bag of freebies(增加训练时间,不影响推理速度下提升性能)1.1 数据增强:亮度、对比度、色调、饱和度、噪音等随机缩放、裁剪、翻转、旋转等模拟遮挡random erase or CutOut: 随机将图像中的矩形区域随机填充像素值或置零MixUp:将两张图像按照一定比例因子进行叠加融合,该比例因子服从B分布。融合后的label包含两张图像的所有标签。CutMix:从一张图中crop一块矩形图像到另一张图中,对应融合后图像的label也

2020-06-16 12:08:47 3869

原创 移动端网络模型总结

移动端网络模型SqueezeNetICLR-2017-SqueezeNet-伯克利&斯坦福背景:从block内部构件组合角度考虑,基于AlexNet网络做的相关改进创新点:将 3x3卷积替换成 1x1卷积(参数量减少了9倍)减少 3x3 卷积的通道数(将3X3XMXN,中的输入通道M和输出通道N数量减少)将降采样后置(提升精度,但该方式增加了计算量)采用了模块化的卷积:Fire 模块。Fire模块主要包含两层卷积操作:一是采用1x1卷积核的squeeze层

2020-06-10 17:48:41 581

原创 KNN与KD树

前言:机器学习方法–knn(k紧邻算法)可分类、可回归。之前在面试中遇到过类似的问题,下面总结记录。重要的学习链接:点我正文

2020-06-10 11:35:41 148

原创 神经网络中参数及计算量的推导计算

不同类型卷积计算量的计算说明:假定输入Blob的shape为BxC1xHxW,输出Blob的shape为BxC2xHxW,卷积核大小为kxk。(这里假定输出的H,W与输入尺寸相同,当然也可通过计算公式计算, pad为pw与ph,stride为s)深度可分离卷积由:深度卷积(depthwise卷积)和点卷积(pointwise卷积)构成pointwise卷积属于2D卷积(卷积核为1X1);depthwise卷积属于分组卷积(组数G==输入通道数C1)分组卷积中组数G表示2D卷积计算量

2020-06-09 14:34:48 510 1

原创 UML类图基础整理

UML类图基础整理缘起:本人在做算法产品化过程中意识到类图在程序架构设计中的重要性。此外,一个好的程序架构设计离不开设计模式的使用,设计模式的描述同样也离不开类图的表示。基础表示泛化:表示:使用一段带有三角形箭头实线表示(见下图)。诠释:是一种is-a的关系代码体现:类继承实现:表示:使用一段带有三角形箭头虚线表示(见下图)。诠释:是一种类与接口的关系, 表示类...

2020-04-07 12:32:01 326

原创 c++ 使用枚举类型统一接口

背景:提供的算法库包含不同子算法:人脸跟踪和目标跟踪,两个算法提供的接口(返回的结果)中均提供跟踪状态值(正在跟踪,目标暂时丢失,等等多个值)可供上层调用算法库使用(不同算法的统一跟踪状态对上层的作用是一致的)。但在两个算法内部定义不同跟踪状态所使用的值是不统一的,如目标跟踪使用1代表正在跟踪,人脸跟踪使用0代表正在跟踪。这样上层在调用算法库时需要根据不同算法判断每个值代表什么状态,这样给上层调...

2020-03-27 17:08:56 693

原创 上位机与下位机的串口通信实践

1、基础认识什么是串口串行接口简称串口,也称串行通信(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。串口设备图示串口设备的现状:现在电脑上USB已...

2020-03-04 10:09:45 19488

原创 VMware Ubuntu拓展分区大小

前言:目的:(vmware ubuntu16虚拟机)由于新的任务需要,原有ubuntu虚拟机sda1的磁盘空间剩余太少,需要进行磁盘空间拓展。搜集了网上大多数的方案很多都不奏效(有的方法本身不可行、有的情况与我的有差异(如磁盘默认是否是通过逻辑卷管理器LVM挂载))。下面介绍试过的方法:方法1虽然该方法没有使用成功,但在此还是学到了一些知识点(入LVM的相关知识),大体思路是先disk分...

2019-12-07 15:01:53 468

原创 makefile中的伪目标(伪标的)

首先重温下makefile定义的规则是如何工作的:make是如何工作的:在默认的方式下,也就是我们只输入 make 命令。那么make会在当前目录下找名字叫“Makefile”或“makefile”的文件。如果找到,它会找文件中的第一个出现的目标文件(标的target)如果该目标不存在,或是目标所依赖的后面的文件(目标)的文件修改时间要比这个目标文件新,那么,他就会执行后面所定义的命...

2019-11-23 21:30:36 1224

原创 makefile中一些符号的含义

先标注一个很好的makefile教程这里归纳了如下符号的含义,请对号入座:$@, $^, $<, $?和=, +=, :=, ?=和;\section1:(自动化变量,更多自动化变量可参照)$@ 表示目标文件(标的)$^ 表示所有的依赖文件(标的)$< 表示第一个依赖文件(标的)$? 表示比目标还要新的依赖文件列表例子分析:(如有hello.c hi....

2019-11-23 16:36:54 8061

原创 makefile中的标的(di)

什么是 标的?标的就是在makefile中单冒号前的名称,是代表了一个与他同名的文件,编译之后生成的.o文件,编译链接之后生成的可执行文件或者其他任何类型的文件,例如下边例子中main这个标的代表的就是main这个可执行文件。main: gcc -o main main.c标的的语法 target ...: prerequisites command ...

2019-11-23 13:51:17 273

原创 图像存储中行字节对齐

缘起,今天在做从NNIE推理网络得到的结果blob(NCHW)数据地址进行数据提取时,涉及到了数据对齐,才发现搞了这么久的图像算法,竟然连图像在内存中实际存储过程中是(一般4,nnie为16)字节对齐的都没有意识到。做了个调查,受教了。下面是转载文章,作者通过代码分析的很明白。转载地址背景:以前都是使用opencv的Mat类型进行图像数据的操作,后面碰到函数对图像数据的输入类型为BYTE*,...

2019-11-13 20:12:32 1110

转载 相机内、外参与相机标定

缘起:最近在接手人脸姿态估计的相关工作,其中涉及了从人脸关键点到人脸姿态的估计,使用opencv solvePnP函数通过预定义3D(关键点)模板与二维关键点进行旋转矩阵求解过程中涉及到需使用相机内参,那么相机内参是什么,在2D坐标系与3D坐标系变换又起到什么作用?下面的内容可以一一解答。声明本人在学习本知识是完全参照该链接,下方内容也是对该链接的完全转载。从文章中可知相机内参就是从像素坐标...

2019-11-10 11:07:46 479

原创 设计模式:模板方法(Template)模式

分类:行为型模式特点:先定义一个操作中算法的骨架,而将某些步骤延迟到子类中实现。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定功能。模式结构:UML图:略(后补)抽象类(AbstractClass):定义抽象的原语操作,具体的子类将重定义它们以实现一个算法的各步骤。主要是实现一个模板方法,定义一个算法的骨架。该模板方法不仅调用原语操作,也调用定义在 Abstract...

2019-09-19 20:11:45 202

原创 c++ Virtual关键字在类构造、析构函数使用与内存泄漏

使用原则:类的构造函数不能是virtual函数,而类的析构函数可以且在类的继承中基类的析构函数通常为虚函数。原因分析:类的构造函数不能是虚函数:通俗地理解构造函数的作用就是为当前类创建对应的对象,如果为虚函数,则创建的不能为当前类创建对象,违背了构造函数的原则。类的析构函数可以是虚函数:理论上,由于类的析构函数为虚函数是合理的。而且,在继承层级的具体实现中,一般都是用父类的指针指向子类对...

2019-09-19 18:21:25 617

原创 设计模式:策略(strategy)模式

类型:行为型模式特点:将算法封装在类层次结构中,使该算法的客户端持有指向该层次结构的基类的指针,并将对算法的所有请求委托给该“匿名”包含的对象。该模式是对算法水平的封装,对于可提供相同接口的不同算法进行封装可以隐藏其实现细节。模式结构:UML图:略(后补)Context(环境角色):持有一个对 Strategy 的引用,最终给客户端调用。Strategy(抽象策略):定义了一个公共接...

2019-09-15 20:08:49 193

原创 设计模式:代理(Proxy)模式

分类:结构型模式特点:为其他对象提供了一种代理,以控制对这个对象的访问。模式结构:UML图:略(后补)Subject(抽象主题):声明了 RealSubject 与 Proxy 的共同接口,定义了某个/些功能。RealSubject(真实主题):通常执行具体的业务逻辑,Proxy 控制对它的访问。Proxy(代理):持有一个 RealSubject 引用(指针),可以在需要时将请求...

2019-09-14 21:30:55 145

原创 设计模式:装饰器模式

分类:结构型模式特点:装饰器模式可以在不改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。模式结构:UML图:略(后补)组成Component(抽象构件):给出一个抽象接口,以规范准备接收附加责任的对象。ConcreteComponent(具体构件):定义一个将要接收附加责任的类。Decorator(抽象装饰类):持...

2019-08-30 16:04:22 162

原创 设计模式:适配器模式

分类:结构型。该模式又分为对象适配器(对象结构型)和类适配器(类结构型),对象适配器使用对象组合,类适配器使用多继承,对象适配器耦合度较低,因此使用更多。特点:适配器模式本质上是一种补救模式,将一个类的接口转换成客户希望的另外一个接口,从而使原本由于接口不兼容而不能一起工作的类可以一起工作(对不相干的两个类建立关联)。模式结构对象适配器模式UML图(略,后补)类适配器模式U...

2019-08-28 18:34:22 122

原创 设计模式:外观(fasade)模式

所属类型:结构型特点:外观模式下,外观为子系统中的一组接口提供了一个统一的高层接口,该接口使得子系统更加容易使用。模式结构:UML图:略(后补)Facade(外观):模式的核心,被 Client 调用,它将所有从 Client 发来的请求委派到相应的子系统去,让子系统处理。SubSystem(子系统):可以同时有一个或者多个子系统,子系统可以是一个单独的类或类的集合。使用场景:...

2019-08-27 21:25:01 272

原创 设计模式:原型模式

特点:允许一个对象再创建另外一个可定制的对象,而无需知道任何创建的细节。个人认为该模式的本质是对拷贝构造函数的进一步封装,封装成一个clone函数,在外面可直接调用clone函数而无需关心内部拷贝细节。模式结构:Prototype(抽象原型):定义了克隆自身的接口。ConcretePrototype(具体原型):被复制的对象,需要实现 Prototype 定义的接口。UML图:略(...

2019-08-27 10:40:01 131

原创 设计模式:建造者模式

建造者模式核心:旨在将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。模式结构:Product(产品):表示被构造的复杂对象。Builder(抽象建造者):为创建一个产品对象的各个部件指定抽象接口。ConcreteBuilder(具体建造者):实现 Builder 的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。Dire...

2019-08-26 20:47:57 116

原创 python中星号(*和**)

引:在c++中通过声明参数模板可以实现不定长参数的函数,在python中有更加方便的方式实现函数形参不定长的,那就是通过*号来实现。具体地可以分为两类,下面分别总结阐述。本文主要参考和代码测试了该博文第一类:在函数定义时使用 * 和 ** 。在函数定义时形参中 使用 * 和 **则表示 可以输入不确定具体参数个数的参数。通过 * 声明的参数在调用是可以传入0~n个参数,且不管传入的参数为...

2019-08-24 14:13:38 535

原创 设计模式:单例模式

定义:单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。代码中的三个要点:单例类的构造函数为私有;提供一个自身的静态私有成员变量;提供一个公有的静态工厂方法。下面以单例模式中的懒汉模式(推迟创建对象)为例,说明单例模式://Singleton1.h#ifndef ...

2019-08-19 20:32:15 119

原创 设计模式:生产者-消费者模式

引:生产者-消费者模式是一个十分经典的多线程并发协作的模式,弄懂生产者-消费者问题能够让我们对并发编程的理解加深。所谓生产者-消费者问题,实际上主要是包含了两类线程,一种是生产者线程用于生产数据,另一种是消费者线程用于消费数据,为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库,生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为;而消费者只需要从共享数据区中去...

2019-08-17 21:35:25 561

原创 踩过的c++的一些坑

承接函数返回结果的句柄不要使用二级指针,更准确地说不要通过回传数据地址的方式承接函数返回结果,因为函数结束后,相关的资源(包括相关数据)都会回收,此时承接函数返回的地址,此时的地址是释放后的、无效的。正确的做法是直接承接函数的返回值(数值)或通过拷贝内存的方式进行返回。以下是遇到的坑:算法库是通过初始化出一块内存(创建一个环境句柄),将环境句柄在不同调用需求中使用。该句柄包含了程序各功能类(...

2019-08-17 16:34:18 156

原创 c++11_多线程_4:condition_variable

引:由上一篇mutex的介绍,基本可知通过设置mutex锁可以解决不同线程修改共享变量的线程安全问题。然而,有些时候并不止要求不同线程间访存的数据安全,而且需要各线程按照某一顺序进行访存或执行,这种情况就需要通过设置condition variable(条件变量)实现。条件变量的一般用法是:线程 A 等待某个条件并挂起,直到线程 B 设置了这个条件,并通知条件变量,然后线程 A 被唤醒。经典的 ...

2019-08-14 16:47:16 295

原创 c++11_多线程_3:mutex

mutex的作用:保证线程安全。即多个线程访问同一资源时,为了保证数据的一致性,最简单的方式就是使用 mutex(互斥锁)。接下面介绍几种加锁形式。第一种形式:lock/unlock形式(直接对共享的资源加锁和解锁,注意:加和解的必须是同一把互斥锁,在加锁和解锁之间的部分均可保证数据一致性),这种形式的弊端是如果在解锁前程序出现异常,那么互斥锁将不能正常解开,程序陷入死循环。#inc...

2019-08-12 21:11:53 262

原创 c++11_多线程_2:线程的join与detach(番外:适配器)

线程的join与detachjoin与detach理论上的区别与作用,已在上一篇说明,这里不在赘述。实例#include<thread>#include<iostream>#include<algorithm>#include<vector>#include<windows.h>class WorkThread...

2019-08-07 10:23:02 325

原创 c++11_多线程_1:多线程机理

c++11线程介绍在c++11标准线程库之前的相关线程库:要么是属于某个单独平台的,例如:POSIX线程库pthread(Linux),Windows线程库(Windows winapi);要么需要第三方库支持,如第三方数据库:Boost线程库。线程与进程显著区别:不同线程间可共享同一地址资源(内存、全局变量);不同的进程间拥有独立的地址空间,相互间不共享。线程的几个状态在一个线程的生...

2019-08-07 10:15:19 218

原创 谈谈c++的仿函数(或称函数对象)

缘起:在c++ STL中泛型算法for_each()的使用中提到了仿函数的使用,这里从实例的角度出发,分析c++ 中的仿函数。定义及使用方式:c++ 仿函数(仿函数不仅在c++ 语言中有,如Java)即为类对象能像函数那样调用使用。c++中通过在类的定义中重载()运算符实现。注意:仿函数在使用时与构造函数本质的区别是:构造函数是在声明(定义)类对象的时候调用;而仿函数是已定义好的类对象上进行...

2019-08-04 17:28:43 907

原创 c++:论类成员变量初始化的不同方式与顺序

缘起:在看c++ 代码是发现,类成员中的变量在类定义时直接进行了初始化(赋值),这对于我一直使用初始化列表或构造函数对类的成员变量进行初始化的程序员来说有点新奇,于是找了各例子,进行了下总结。例子#include<iostream>using namespace std;class Test {public: int a = 1; Test() {} Test(i...

2019-08-03 15:41:23 549

原创 leet_95_all_BST(不同的二叉搜索树)

leet:地址分类:分治法(+递归)相似题型:leet_241题目描述:给定一个int型数n,生成由数字1~n生成的所有满足BST(二叉搜索树)的二叉树。note:BST的定义:左子树(如果非空)上所有结点的关键码都小于根结点的关键码。右子树(如果非空)上所有结点的关键码都大于根结点的关键码。左子树和右子树也是二叉搜索树。输入输出样例:分析:该题与leet_...

2019-07-31 20:53:06 139

WIX3.5--WIX3.7安装包

程序中为wix3.7版本,但对于环境对wix3.5到wix3.7版本的需求都可使用(自己已经亲测可用),具体使用方法见压缩包内的readme文件

2019-01-17

从excle提取信息,并进行邮件群发

该程序实现了从excel中提取每个人的不同信息,并将不同信息添加到格式化的模板邮件中,实现向公司员工群发邮件。适用于公司员工的福利邮件、个人信息邮件等等。

2019-01-17

空空如也

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

TA关注的人

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