- 博客(39)
- 收藏
- 关注

原创 darknet源码分析(二):卷积层实现过程分析im2col部分
layer的内容很多,包括卷积层、反卷积层、池化层、shortcut层、损失函数层、全链接层等等……本文分析卷积层、反卷积、YOLO层、BN层typedef enum { CONVOLUTIONAL, DECONVOLUTIONAL, CONNECTED, MAXPOOL, SOFTMAX, DETECTION, DROPOUT, ...
2019-06-25 23:18:23
2210

原创 机器学习系列5. CART决策树的编程实现(西瓜书)
为了加深对决策树的理解并且练习递归,手撕了一个CART决策树,使用的数据是西瓜书中表4.2目前还没有加上剪枝操作,而且只能处理离散属性,日后会完善https://github.com/zhengmingzhang/CART...
2019-01-31 18:23:58
1612
4

原创 机器学习系列2 BP神经网络+代码实现
神经网络简单的说,就是用一种层次化的方式将一堆简单的函数在顶层堆叠在一起,形成一个复杂的非线性函数,以此表达输入与输出之间的关系。本文结构: 1.介绍构成神经网络的基本单元:神经元 2.介绍三层神经网络的实现过程:前向传播、损失函数的计算、反向传播、梯度下降算法,并使用python分步实现 一、神经网络的基本单元:神经元 ...
2018-11-04 12:01:32
42979
26

原创 对LSTM和BLSTM的一些理解
Recurrent Neural Networks 当我们思考一件事情的时候,我们不会将所有以前的东西都全部丢弃,然后用空白的大脑进行思考,人类的思想拥有持久性。考虑这样一个问题,当我们与他人交谈时,我们想要预知这个人接下来会说什么,通常需要了解他上一句说了什么,然后根据以往的交流经验,我们才能预测出他的下一句。例如“今天下雨了,我”你可能会猜到他会说“又没带伞”或者“不想出门了”。传统的神经网...
2018-07-01 14:49:58
48161
3
原创 python partial、map的使用
背景看mmdetection源码的时候,发现经过FPN的多层输出都会通过multi_apply(func, *args, **kwargs)计算结果,而对FPN的每一层的操作是通过func实现的。这让我好奇multi_apply究竟做了什么?def multi_apply(func, *args, **kwargs): """Apply function to a list of arguments. Note: This function applies the ``
2022-05-02 22:35:02
1110
原创 CornerNet:Detecting Objects as Paired Keypoints
论文思想将检测问题建模成关键点检测问题,通过检测左上、右下两个关键点来回归出检测框,是一种anchor free 的目标检测算法。主要解决了anchor based方法的两大问题:anchor based方法分配gt的策略会很大程度的导致正负样本不平衡的请款anchor boxes生成会引入大量的超参,训练比较难模型架构以640*640为输入data,总Flops达到707.76GFLOPs各个模块占比情况layerhourglass backbonetl_poolbr_po
2022-05-01 17:33:58
1082
原创 目标检测:使用mmdetection对比centernet与yolov3的性能
前情概要上一篇博客,我通过mmdetection实现的源码解释了centernet的原理,并分析了该算法的一些优缺点,本篇博客我将讲解如何通过mmdetection运行centernet,并基于一个x光数据集对比centernet与yolov3的性能。本文使用数据集介绍本文使用的数据集是安检x光的数据集,数据集大小为3600张图片和对应标注,样例图片如下而需要检测的物体label有10个:knife、scissors、lighter、zippooil、pressure、slingshot、han
2021-08-22 22:03:44
3605
5
原创 chmod权限
chmod 用3个数字来表达对 用户(文件或目录的所有者),用户组(同组用户),其他用户 的权限:如:chmod 777 /test数字7是表达同时具有读,写,执行权限:读取–用数字4表示;写入–用数字2表示;执行–用数字1表示;按照规则,如你想设置/test目录的权限为: 对用户可读可写:4(读取)+ 2(写入)= 6 ; 对用户组可读可执行:4(读取)+ 1(执行)= 5 ; 对其他用户仅可读:4(读取); 这样就可以用命令: chmod 654 /tes
2021-05-26 18:13:18
977
原创 setuptools制作whl包实战讲解(一)
什么是 whl.whl格式的文件本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件。使得可以在不具备编译环境的情况下,选择合适自己的python环境进行安装。我们可以使用我们非常熟悉的pip install 来安装whl包。如:pip install mask_detect_v1.0.whl...
2020-07-01 15:47:02
4189
1
原创 在服务器上安装anaconda出现Error -3 from inflate: incorrect header check
前几天想在公司集群上安装一下anaconda,先在本地电脑上下载了Anaconda安装包,之后通过FTP传到集群上去,但是安装的时候出现了如下问题。这个问题可以通过将.sh文件先转为.zip,通过ftp传到集群上后再转为.sh,之后安装便成功了...
2020-02-17 10:19:52
2753
1
转载 Windows10/ubuntu双系统如何正确删除Ubuntu系统
https://blog.youkuaiyun.com/qq_33877253/article/details/71014697亲测有效
2019-12-12 12:17:36
726
原创 动态规划问题总结(一)
一、从斐波那契开始什么叫做斐波那契数列?1 1 2 3 5 8 13……f(n-2) f(n-1) f(n-1)+f(n-2)这样的数列就是斐波那契数列,总结起来斐波那契数列的表达式为n=1, f(1) = 1n=2, f(2) = 1n=3,4,5……, f(n) = f(n-1)+f(n-2)也就是说想要得到斐波那契数列中某个位置的数,还要得到它前两个位置...
2019-10-15 22:15:42
429
原创 如何解决:Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so
最近在公司搭建环境,安装完dlib包后运行程序出现kernel dead的情况,检查后台,发现错误提示Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so网上找了好长时间,下面这个方法解决了我的问题:在命令行运行以下两行conda install nomkl numpy scipy scikit-lear...
2019-07-21 15:46:49
816
1
原创 两种解法解决求取立方根的问题:二分法、牛顿迭代法
这道题实际上是我在实际面试过程中被考到的一道题,个人觉得比较值得记录一下。题目要求:计算给定数字的立方根,并且保留小数点后两位。解法一 :二分法求立方根的问题实际上就是在1~给定数字之间找到一个数,让这个数的立方为给定数字,由此转化为了一个查找问题。话不多说,二分查找还是很容易理解滴,只需要注意如何保留小数点后2位就可以了,上代码def getCube1(input): ...
2019-07-20 17:03:02
5479
3
原创 darknet源码分析(三)gemm实现
上一节中我们分析了darknet卷积层的前向操作过程,darknet对卷积计算的处理实际上是:先使用im2col将input_channel*(height*width)的输入特征图(实际存储是按照行存储的,即是1*(input_channel*height*width)的一维数组)转化成(input_channel*kernel_size*kernel_size)*(out_height*o...
2019-07-13 22:14:59
1952
原创 darknet数据结构(一):data
"不积跬步,无以至千里; 不积小流, 无以成江海",darknet的高楼大厦(network)是根据我们的图纸(.cfg配置文件),用砖头(data)堆砌成一面面墙与柱(layer),之后才搭建起来的,因此想弄懂一个框架,了解其数据结构是第一步。我们要先从最基本的开始。datadata在darknet框架里用于存储和交换数据,是darknet的最基本的存储单元,可以持有矩阵(matrix)...
2019-05-30 22:47:52
1846
1
原创 darknet.h分析
今天来看include文件夹下的darknet.h头文件,里面定义了darknet这个框架的结构体和几个枚举变量,这里记录几个我认为比较重要的。1.LAYER_TYPE这个枚举变量用来指定你要定义的网络层是什么类型,可以指定为卷积层、反卷积层、池化层、激活层、YOLO层等等typedef enum { CONVOLUTIONAL, DECONVOLUTIONAL, ...
2019-05-20 23:44:31
1536
原创 darknet整体框架
darknet是使用C和CUDA编写的开源的神经网络框架,它快速且使用简单,之前在海康做caffe方面的工作,本想研究caffe的源代码,但是被导师推荐阅读darknet源代码加深对深度学习的理解而且还能巩固C语言,由此记录一下我的darknet源码阅读之路。一、darknet安装本记录主要是阅读源码,所以opencv gpu我就先不弄了,darknet安装非常简单,直接源码安装,在git...
2019-05-19 15:01:13
12406
2
原创 剑指Offer 数组中只出现一次的两个数字
题目描述:一个整数数组除出了两个数字外,其他数字都出现了两次,请写出程序找出这两个只出现了一次的数字,并将两个数字分别放入num1[0]、num2[0]中。 看到这道题我立刻想到了之前做过的一道找出数组中只出现一次的数字,要用到异或的逻辑运算,因为任何一个数字异或它自己都为0,那么只要对数组中每个元素异或一遍剩下的就是只出现一次的数字。我想这道题一定也是要用到这种方法来解决。但是这道题有...
2019-05-16 22:28:31
292
原创 剑指Offer 数字在排序数组中出现的次数
题目:统计一个指定的数在已排序数组中出现的个数一个非常容易想到的办法就是当发现目标数字时开始计数,开始计数后遇到与目标数字不相等的数字时则停止计数并返回。当然此题的核心在于寻找目标数字的起始和终止点即可,因此完全可以想到使用二分查找的方法,代码如下public class Solution { private static int GetStartIndex(int[] arra...
2019-05-13 21:32:05
137
原创 shell脚本如何读取一个文件夹下所有的文件名
files=$(ls $folder)for file in filesdo echo $filedone
2019-04-26 16:08:24
17139
7
原创 背包九讲三、 多重背包问题
前面讲了什么是完全背包问题,完全背包问题就是每个物品你可以使用无数次,而今天所要说的多重背包问题,每个物品都对应有限的数量。这个问题与完全背包问题很相似,只需要在完全背包问题的状态转移方程上稍微做以改动即可。时间复杂度为import java.util.Arrays;import java.util.Scanner;public class Bag_muti { publi...
2019-04-21 15:34:29
684
原创 安装Caffe(windows) win10+vs2013+anaconda3
在海康实习的第一周,给我分配了任务,因为要放到AI芯片上跑,需要用到caffe,于是就开始了我的caffe学习之路,从caffe安装上我就清楚的感受到这东西不是善茬,相较于tensorflow、pytorch要麻烦的多。安装过程参考:https://blog.youkuaiyun.com/weixin_37621229/article/details/80547934由于项目还不需要使用到GPU,因此...
2019-04-16 11:59:24
1669
16
原创 背包九讲二、完全背包问题
前面讲了0、1背包的做法,相信很多人和我一样已经摸到了动态规划的大门稍微理解了动态规划的思想,现在我们要向前进,开始分析完全背包问题,这其中会用很多重要且有趣的思想。题目描述:有N 件物品和一个容量为V 的背包,每件物品有无限个。放入第i 件物品耗费的空间是Ci,得到的价值是Wi。求解将哪些物品装入背包可使价值总和最大。可以看出,完全背包与0、1背包的唯一区别在于,完全背包的每件物品都有无...
2019-04-16 11:30:27
441
原创 背包九讲 一、0、1背包问题及其空间复杂度的优化 +java代码
背包问题是经典的动态规划问题,那么先简要说一下什么是动态规划一、动态规划举一道非常简单的leetcode题目:爬楼梯题目描述:假设你在爬楼梯,需要n阶才能爬到楼顶,已知每次你可以爬1或者2个台阶,求一共有多少种办法可以爬到楼顶?分析:假设n=1,毫无疑问我们只有一种方法,能够到达楼顶 n=2时,我们有两种方法到达楼顶(1 1)(2) ...
2019-04-14 17:08:38
1948
原创 有环链表问题总结
一、什么是叫做链表有环?当一个链表没有环时,我们可以直接从链表的头遍历到链表的尾部,而当一个链表有环时,链表会在环中一直旋转。如下图所示:这个单链表即存在一个环,3、4、5、6,环的入口为3。二、如何判断一个链表是否有环?判断一个链表是否有环,我这里提两种方法,比较常用的是第二种1.使用哈希表实现将单链表中的节点元素一个一个放入哈希表(set)中,如果当前放入的节点在哈...
2019-04-04 15:24:26
546
原创 机器学习系列4 Logistic regression
逻辑回归简单说来就是在线性回归基础上加上sigmoid函数,但你真的理解它么?一、为什么要用sigmoid?之前在ABB研究院实习时,老板让我做一个简单的齿轮箱故障分类,当时的数据只有两种故障也比较简单,因此我提议使用逻辑回归,最终也完成的很好。但由于是在研究院,老板是个博士大佬很喜欢钻研问题于是就问我为什么加上个S函数,而且为什么明明叫回归却解决分类问题?我记得当时我的回答是:因为S函数...
2019-01-25 16:11:09
188
原创 快速排序与代码实现
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。是一种分治思想的应用。 快速排序是通过递归调用“切分”来实现的。一、切分(partition) 假设...
2019-01-08 11:07:46
814
原创 机器学习系列3 Batch Normalization总结
前段时间面试腾讯优图计算机视觉实习,被问到是否理解Batch Normalization,虽然自己能明白它是做了什么有什么作用,但是总觉得没有理解透彻,于是翻出论文阅读了一番并编程实现,下面算是记录一下吧。论文地址:https://arxiv.org/abs/1502.03167一、BN解决了什么样的问题 从论文题目我们就可以看出BN是解决“Internal Covariate S...
2018-12-27 22:29:36
382
原创 leetcode 15 3sum python
先说一下自己的想法,这道题用暴力搜索肯定是不行的,自己想到计算两个数的和,之后使用二分查找,找到-(两数之和),最后虽然结果是正确的,但是却超出了时间限制。在博客上看了一些人的代码,提交还是超出时间限制,最后采用了双指针的方法顺利通过。class Solution(object): def threeSum(self, nums): """ :type...
2018-10-29 19:58:34
254
原创 leetcode 876 链表的中间结点 python实现
还是比较简单的题,但第一次使用的方法还是超时了,当时使用了两个while,太low了之后想到了使用字典的方法,一定要擅长使用字典啊!# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = ...
2018-10-23 20:38:27
1101
原创 leetcode21 合并两个有序链表 python实现
题目比较简单,写个文章记录一下将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解答:# Definition for singly-linked list.# class ListNode...
2018-10-19 19:30:55
402
原创 leetcode 707 python实现
使用了结点的方式实现链表,速度比较慢,之后尝试了列表实现,速度快了很多class MyLinkedList: # 定义一个结点的内部类 class Node: def __init__(self, data, nextnode): self.val = data self.next = nextnode ...
2018-10-12 08:40:07
896
原创 机器学习系列1 PCA(主成分分析法)
1.PCA的应用 1.降维 2.去除数据相关性,对数据特征进行抽取2.主成分选择原则 (1)主成分是原来变量的线性组合; (2)各主成分之间互不相关; (3)主成分分析的实质就是找到一个正交变换,即有正交阵U,使得一个
2018-10-04 10:52:26
701
原创 荷兰国旗问题
Cousera Algorithms PartI第二周课后问答题,有这样一道题,当时没什么想法,直到学了第三周的归并排序,才弄明白要怎么做,这里记录一下自己的想法与最终代码。问题描述简而言之,这道题就是有红白蓝三种颜色的球共n个随机排列,而我们的任务就是将这n个球按红、白、蓝顺序排好。这也就是这道题名为荷兰国旗的原因,下图即为荷兰国旗,可谓生动形象。这道题最大的难题就在于只允许...
2018-09-22 16:00:05
20240
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人