- 博客(42)
- 收藏
- 关注
原创 Batch Normalization、Layer Normalization代码实现
BN(Batch Normalization)首次提出与论文,主要目的是为了解决训练深层神经网络慢的问题。我们可以神经网络整体可以看成一个高阶的复杂函数,通过训练优化它的参数,可以用于拟合各种复杂的数据分布。一般而言,一个网络会有多层,其中的每一层都可以看成一个子函数,用于拟合其各自的子分布。
2024-01-15 18:49:04 1021
原创 线性规划、整数规划开源求解器——OR-Tools
MPSolver是OR-Tools 中的一个接口,它是多个不同求解器的封装容器,可以调用收费的或者开源的求解器。根据要解决问题性质的不同,在创造求解器实例时,需要指定相应的后端(即求解器)。下面的代码都是基于python,对于其他语言可以参考代码块上方的链接。线性规划求解器——GLOPortools内置的线性规划非商业求解器,一般用户求解纯线性问题,允许用户对求解器过程进行完全控制。# 两种定义方式等价return# 创建连续变量代码示例hl=zh-cnelse:# 等价的方式。
2023-05-28 22:54:22 4741
原创 FaceBook开源向量检索库Faiss的基本用法
faiss是FaceBook开源的大规模向量检索库,底层为C++,内置的大部分算法支持GPU加速检索,包含了C++及Python两种API,且与Numpy库无缝衔接。
2021-11-12 20:08:20 4029
原创 基于梯度提升树GBDT的二分类及多分类公式推导
GBDT(Gradient Boosting Decision Tree),中文名为梯度提升决策树,属于集成学习的一种,由多个弱学习器组合成强学习器,每个弱学习器为一颗二叉决策树,每一颗树会拟合前面所有树的组合带来的残差,这个残差可以负梯度(即损失函数对目标值导)、也可以是目标值与真实值之间的差距,如果是分类问题,一般是去逆合负梯度方向,如果是回归问题,一般是去拟合目标值与真实值之间的差距。本篇我们主要探讨分类问题。二分类:我们将每一颗树用小表示,将所有树的集成用大表示,假设当前求出了M颗树,则
2021-08-01 14:20:28 1146
原创 mac下安装及配置hive
前言在安装hive之前需要安装hadoop,因为hive本身并没有提供数据存储功能。它的数据是存储在hadoop的HDFS上面的。参考mac下安装hadoop教程进行hadoop的安装及配置。同时hive表的元数据存储在mysql中,mysql的安装教程非常多,随便找一篇安装就好。安装完成后记得启动hadoop和mysql。安装hive非常简单,如下:brew install hive本文的安装版本是3.1.1,涉及到路径时根据实际情况进行更改,接下来配置环境变量,vim ~/.ba
2021-07-23 21:34:03 963 3
原创 Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
文章目录原因解决办法参考原因在windows下,使用spark时,报了如下错误:Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties21/05/22 18:51:29 ERROR Shell: Failed to locate the winutils binary in the hadoop binary pathjava.io.IOException: Could not locate e
2021-05-22 19:36:24 350
转载 python常见面试题整理
文章目录前言1 关于*arg, **kwargs,我们为什么要使用它们?2 装饰器3 垃圾回收机制4 多线程5 模块os sys的不同之处6 lambda表示式的作用7 pass关键字的作用8 Python是如何进行类型转换的?9 浅拷贝和深拷贝10 __new__和__init__的区别11 Python中单下划线和双下划线分别是什么?12 python自省(反射)前言看到知乎上一篇比较好的python面试题,本人在面试的过程中,被问到了不少,因此转载过来,作为笔记。与原文相比,略有改动1 关于*a
2021-04-29 13:14:20 393
原创 linux下基于c/c++遍历文件夹
文章目录相关头文件及函数相关头文件及函数#include <sys/types.h> #include <dirent.h>定义函数:DIR * opendir(const char * name);该函接受一个字符串,即目录名,如果读取成功,则返回DIR类型的指针,否则返回NULL。错误代码 EACCESS 权限不足EMFILE 已达到进程可同时打开的文件数上限。ENFILE 已达到系统可同时打开的文件数上限。ENOTDIR 参数name非真正的目录ENOE
2021-04-26 20:18:43 2228
转载 C语言中的strlen与sizeof的区别
sizeof与strlen是有着本质的区别,sizeof是求数据类型所占的空间大小,而strlen是求字符串的长度,字符串以/0结尾。区别如下:(1) sizeof是一个C语言中的一个单目运算符,而strlen是一个函数,用来计算字符串的长度。(2)sizeof求的是数据类型所占空间的大小,而strlen是求字符串的长度实例1:printf("char=%d/n",sizeof(char)); //1printf("char*=%d/n",sizeof(char*)); //4prin.
2021-04-26 20:03:01 709
原创 python使用matplotlib绘图
matplotlib是python中用于绘制各种图像的模块,功能十分强大,通常与pandas模块搭配使用,可以生成各种样视的图片,用于数据的分析和展示。 绘图风格plt.style.use('fivethirtyeight') #设置图像风格样式https://blog.csdn.net/qq_42505705/article/details/84962815设置图例的位置plt.legend(l......
2021-04-26 18:43:50 53605 6
原创 linux下基于c++使用opencv的cpu和gpu版本提取tvl1光流
使用opencv c++版本提取tvl1光流前言Gpu版本cpu版本配置文件及运行前言在计算机视觉中,光流可以用来反映视频中的信息,在行为识别,跟踪,视频分割等任务中都使用.对光流不了解的可以参考计算机视觉–光流法(optical flow)简介,本文的计算的光流是基于tvl1算法. 对于什么是tvl1光流,推荐大家参考啥是TV_L1 opticalFlow.对于在python中如何提取tvl1光流,大家可以参考python提取tvl1.本文所使用的环境如下:opencv-4.5.1ubuntu16
2021-01-10 15:16:00 1734
原创 python日志logging的用法
python——日志模块日志的类别python中的具体用法 当开发完后部署,需要对运行过程中的状态进行记录,方便排序问题;因此,日志是非常有必要的,python中自带的logging模块,可以满足开发中的大部分需求。日志的类别日志级别描述DEBUG最详细的日志信息,典型应用场景是问题诊断INFO信息详细程度仅次于DEBUG,通常只记录关键节点信息WARNING当某些不期望的事情发生时记录的信息(
2020-12-05 19:19:11 530 1
原创 python利用opencv将图片合成视频及踩到的坑
代码如下:import cv2import ospath = '/home/lw/CctvAction/WaveHand/clip1'imgs = os.listdir('/home/lw/CctvAction/WaveHand/clip1')imgs.sort()img = cv2.imread(path+'/'+imgs[0])h = img.shape[0]w = img.shape[1]videoWriter = cv2.VideoWriter(path + '/test.avi'
2020-10-11 23:54:03 1233
转载 僵尸进程产生的原因、危害,与孤儿进程的区别
文章目录1 僵尸进程1.1 为什么会有僵尸进程1.2 僵尸进程是如何产生的1.3僵尸进程的危害1.4 如何处理僵尸进程2 孤儿进程3 wait() waitpid()的区别1 僵尸进程1.1 为什么会有僵尸进程 Linux 允许进程查询内核以获得其父进程的 PID,或者其任何子进程的执行状态。例如,进程可以创建一个子进程来执行特定的任务,然后调用诸如 wait() 这样的一些库函数检查子进程是否终
2020-09-14 21:35:19 2555
原创 java中泛型浅析——泛型擦除及extends和super通配符
文章目录1. 泛型的定义2. 泛型集合1. 泛型的定义先看一段维基百科上对Java中范泛的定义: Generics are a facility of generic programming that were added to the Java programming language in 2004 within version J2SE 5.0. They were designed to extend Java's type system to allow "a
2020-08-26 01:15:51 622
原创 面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题
文章目录1.将一根木棒截成三段,问能够组成三角形的概率;2.在圆上任取三点,问能够组成锐角、直角、钝角三角形的概率;3.共有25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛;4 有两瓶红蓝墨水,体积一样,现在从红墨水中舀一勺加入蓝墨水中,搅拌均匀后,在从蓝墨水中舀一勺加到红墨水中,试问这两瓶墨水哪瓶纯度更高。1.将一根木棒截成三段,问能够组成三角形的概率;来源:https://blog.csdn.net/weixin_41245919/article/deta
2020-08-25 11:34:04 3969
原创 深入解析java中==和equals()的区别
基类——objectjava中所有的类都是继承自object,基类中定义了equals()方法,可以看下源码:通过源码可以很明确的看到,基类中的equals()其实就是说使用==运算符,那么这个==号又是在比较两个对象的什么?仔细看上图中的一句话,“which states that equal objects must have equal hash codes”;意思就是说如果两个对象有相同的哈希码,则equals()函数返回true,即==是在比较两个对象的哈希码;哈希码又是干嘛的,看一下图源码
2020-06-03 13:28:22 2561
原创 python生成器浅析——yield
文章目录使用类模仿可迭代器使用yield生成器参考使用类模仿可迭代器要想使自定义的类具有可迭代的功能,我们必须在类中定义两个函数,_sitr_,_next_,下面定义一个类,实现斐波那契数列;class Fab(object): def __init__(self, max): self.max = max self.n, self.a, self.b = 0, 0, 1 def __iter__(self): return self
2020-05-17 11:54:43 227
转载 多个版本python并安装对应的pip
有时候电脑或服务器里需要安装多个版本的Python,比如Python2.7、Python3.5、Python3.6。同时存在多个版本的Python,如何安装对应的pip成为一个头疼的问题,本文从原理入手,详解如何安装对应Python版本的pip,当然也适合单一版本Python的pip的安装。本文所用系统环境:Ubuntu16。pip,说到底只是Python的一个包,平时我们安装Pyt...
2020-05-04 21:08:01 4613
转载 leetcode题目--包含最多水的容器双指针的证明。
This is a formal proof of the O(n) algorithm mentioned in the tutorial.problem Description:Condition: We have two pointers at i & j, suppose h[i] <= h[j].Goal to Prove: If there is a better...
2020-05-04 21:07:01 201
原创 c++中数组的初始化规则
数组的初始化全局数组局部数组全局数组对于内置数据类型,没有被显示初始化的元素会被默认初始化为0,对于整型数据,就是0,对于指针,会被初始化为nullptr;以下代码都是基于visual studio2019int arr[10];int* p[10];int main(){ if (arr[0] == 0) cout << arr[0] <...
2020-05-04 20:58:48 1524 1
原创 c++学习问题笔记
疑问以及解答为什么类的静态成员不能声明成const?类的构造函数为什么不能定义成虚函数?为什么不存在引用的数组?为什么类的静态成员不能声明成const?当通过类的对象来调用成员函数时,实际上是通过一个名为this的额外隐式参数来访问该对象,this是一个指向该对象的指针。this形参是隐式定义的,实际上,任何自定义名为this的参数或变量的行为都是非法的,但我们可以在成员函数体内部使用this...
2020-05-04 18:31:50 454
原创 C++四中强制类型转换static_cast、dynamic_cast、const_cast、reinterpret_cast
c++的四种强制转换类型前言staic_castdynamic_castconst_castreinterpret_cast参考前言在c++中,显示强制转换类型具有如下形式:cast-name(expression)其中type是转换的目标类型而expression是要转换的值。如果type是引用类型,则结果是左值。cast-name是static_cast、dynamic_cast、c...
2020-05-02 23:51:18 393
原创 外部排序——置换选择排序和败者树
外部排序 如果需要对大量的数据进行排序,且内存容量远小于数据量时,此时就需要用上外部排序了;一般外部排序分为两个步骤,第一阶段:生成初始归并段,第二阶段:递归的将这些初始归并段逐步合成一个大的有序排列;生成初始归并段 生成初始归并段的方法有两种; 一、将数据分批读入内存,采用内部排序的方法,生成一个小的归并段,再写入外存。 ...
2020-04-25 14:14:34 2337
原创 完全二叉树的第一个非叶节点下标以及求子结点坐标
在看堆排序的时候,涉及到完全二叉树的知识点,需要初始化堆,然后不断的调整堆;假设原始的数据是存储在数组中,我们需要从最后一个非叶节点开始创建堆,书中一般直接给出最后一个非叶节点的下标,这里进行简单的推到。假设数组的长度为N,为了方便计算,完全二叉树的高度从0开始,假设最下面一个完整层(即该层的结点数为2^h)的高度为k,最后一层结点个数即为n,那么则有下面的式子成立: ...
2020-03-18 18:41:42 3473 3
原创 剑指offer :1~n整数中1出现的次数,与书上不一样的解法
题目43:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。书上的解法,看了半天也没看懂,而且那种解法估计也很难一下想的出来,这里记录下自己的想法。对于1出现的次数,有如下规律:1~9 1 1~99 2010~19 1+10 100~...
2020-02-07 12:01:18 263
原创 python——通过virtualenv virtualenvwrapper conda安装虚拟环境
有时候,不同项目之间的要求的Python包之间可能会有冲突,这时候,虚拟环境就可以帮我们解决这个问题,虚拟环境和全局的默认环境是隔开的,并且安装python包的命令和方式都是一样的,所以使用起来非常方便。 首先,介绍第一个创建虚拟环境的包——virtualenv 第一步:通过如下命令安装这个包pip install virtualenv 或 pip3 install...
2019-09-08 14:25:11 373
原创 ubuntu下lintel的安装配置
现在深度学习火热,而其又是基于数据驱动的一种机器学习;做计算机视觉的免不了和图片、视频打交道,频繁的从磁盘中读取图片数据是比较耗时的,而且基于视频的深度学习更是麻烦,需要先将视频裁剪成帧,在送进网络训练,那么有没有现成的接口可以让程序直接快速的读取视频,并裁剪成帧!答案是:有的。即lintel。lintel是能用于解码视频的python模块,返回视频中所有帧的字节数组,其使用的ffmpeg的c...
2019-06-30 16:21:18 630 3
转载 c/c++——getopt()函数的用法
该函数位于头文件<unistd.h>中,函数的原型为int getopt(int argc,char * argv[],const char* optstring);看到该函数的前两个参数,我们可以立刻联想到main()函数,虽然有时候main()函数的前两个参数会省略,但如果我们需要通过命令行传参的话,就得用上它两了;在正式介绍getopt()函数之前,我们还得说下与它有关...
2019-05-24 18:58:36 600
原创 基于opencv,使用python提取视频帧以及提取TVL1光流
处理图像,就得派上opencv了,python可以很好的支持它。一 从视频读取帧、得到相关属性、并设置保存哪些帧 首先;我们得新建一个videocapture对象;cap=cv2.VideoCapture(videopath)通过上面建立的对象,可以获取视频的相关属性,一般使用中用到的属性主要有如下: cv2.CAP_PROP_FRAME_WI...
2019-05-05 21:52:46 15069 62
转载 python——装饰器@property以及静态方法@staticmethod的作用与用法
在看代码的过程中看到类中的函数前面加了@property,于是就上网查,意识中应该是第二次碰到了,于是这次把网上找到的资料记录下来,权当笔记。以下资料来自 https://www.cnblogs.com/zhong2018/p/9016366.html https://blog.51cto.com/10836356/2108790...
2019-05-02 19:55:04 874
转载 python特殊函数,__str__(),__repr__(),__call__(),__getitem__(),__len__()
由于看别人代码,看到几个特殊的函数;然后就到网上查阅了资料,特此写下来做个笔记!一、__str__(),__repr__(),__call__()将这三个函数放到一起做比较:先看如下代码,以遍更好的理解三个函数的功能:类A中没有定义任何函数,打印a会显示其在内存中的位置,如何把实例a当做函数用,则会报错;下面,看看定义了三种函数时,同样的操作会输出什么:可以发现,...
2019-04-01 22:13:47 233
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人