自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大泽之国

以技术的名字灌水

原创 在mnist上尝试triplet loss (mxnet)

triplet loss Triplet Loss损失函数在mnist上做相似度计算 triplet loss的核心包括三个部分 anchor/positive/negative 代表三个输入图,尺寸相同,训练的目标是令anchor和positive距离最小化,同时anchor和negative...

2019-03-17 20:00:40 603 0

原创 github上如何修改submodule url

github上fork工程A,而A中有一个submodule B, 如果修改了B,是没法直接提交到github上的,因为B指向别人的工程,那么如何让B指向自己的工程,进而保存自己的修改呢? 首先要从B的原始工程fork一份属于自己的代码,然后修改自己的A工程中.gitmodules文件里B对应的u...

2019-03-07 01:40:25 1073 0

原创 cv::parallel_for_ 的一个例子

cv::parallel_for_是opencv封装的一个多线程接口,利用这个接口可以方便实现多线程,不用考虑底层细节,以下是一个具体的例子 继承ParallelLoopBody,重载运算符() class LoopBody : public cv::ParallelLoopBod...

2019-01-20 22:12:51 1291 0

转载 经典网络参数和top-score

2019-01-20 21:00:42 172 0

原创 cuda编程 MergeSort

gpu codes #include "windows.h" #include "cuda_sort.h" #include <iostream&am...

2019-01-13 11:49:55 515 0

转载 cmake中prebuild/postbuild命令

add_custom_command(TARGET target                      PRE_BUILD | PRE_LINK| POST_BUILD                      COMMAND command1[ARGS] [args1...]        ...

2019-01-11 01:09:08 1435 0

原创 深度学习中的优化策略

SGD w=w−lr∗∂ww = w - lr*\partial ww=w−lr∗∂w 其中 lrlrlr是学习速率 ∂w=∂loss∂w\partial w = \frac{\partial loss}{\partial w}∂w=∂w∂loss​ sgd_momentum v=mu∗v−lr∗...

2019-01-05 19:50:53 395 0

原创 batch norm反向公式推导

输入 Xi=(xi0,xi1,...,xi(n−1))X_i=(x_{i0},x_{i1},...,x_{i(n-1)})Xi​=(xi0​,xi1​,...,xi(n−1)​) i∈[0,m−1]i \in [0,m-1]i∈[0,m−1] batch-size等于m,特征维度n 输出 Yi=(...

2019-01-05 16:35:28 427 0

原创 pvanet 训练自定义数据

源码 编译方法 到lib目录下执行 make caffe-fast-rcnn目录下执行 cp Makefile.config.example Makefile.config #编辑Makefile.config内容,启动WITH_PYTHON_LAYER := ...

2018-12-04 23:30:59 150 0

原创 validation accuracy vs train accuracy

训练时validation accuracy和train accuracy之间没有差距,本义为这是一个还不错的曲线,但是今天讨论时有人评论说这种情况说明网络参数不足,因为在参数充足的情况下多多少少会有过拟和,所以正常情况下train accuracy会高于validiation accuracy,...

2018-11-18 23:00:08 2063 0

原创 softmax_loss梯度推导

softmax_loss的真正名字应该是softmax cross entropy loss。因为softmax的定义是 f(zi)=softmax(zi)=ezi∑jezjf(z_i)=softmax(z_i)=\frac{e^{z_i}}{\sum_je^{z_j}}f(zi​)=softma...

2018-11-18 02:54:50 447 0

原创 faster R-CNN 生成anchor box

以下代码来自faster R-CNN的generate_anchors.py,目的是基于预定的base_box(正方形),生成若干长宽比和尺度的新的anchor box。 其中 _whctrs()是把一个矩形用(中心点,宽高)的形式表达 _mkanchors()是给定一个中心点,和若干不同的宽高,...

2018-11-16 00:25:37 417 0

原创 yolov3 中box坐标的处理

yolov2吸收faster rcnn的anchor box机制时遇到训练不稳定的问题,分析认为是bbox坐标回归时没有限制,导致anchor box可能会去预测一个距离很远的object,效率不高,因此yolov2对bbox的坐标进行一系列的处理,令anchor box只会对邻近的object负...

2018-11-15 00:46:26 6011 0

原创 shuffleNetV2

ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design Why ResNet,DenseNet等网络已经把分类问题的精度推到一个很高的水平,而很多轻量级网络MobleNet, XceptionNet和Shu...

2018-11-11 20:48:24 796 0

原创 darknet yolov3 训练自定义数据集

VOC数据集上的训练步骤 修改类别 yolo层的classes修改成新的类别书 yolo层前一个convolution层的filters修改成(classes+4+1)*3

2018-11-10 22:03:50 706 0

原创 强化学习的一点理解

从可用作输入的信息多少的角度,可以把机器学习划分成三个类别: 无监督学习:包括降维和聚类任务,几乎任何东西都可以当作输入,但输出往往很模糊。 有监督学习:包括分类和回归任务,因为需要人工标注,可以当作输入的信息要少很多 强化学习:和前面两类不同,强化学习适合做的是行为控制。其能够接触到的...

2018-11-08 00:49:04 130 0

原创 经典网络结构之InceptionNet

InceptionNet又称googleNet,最初的设计思路是增加网络宽度:InceptionNet核心结构包括多个分支,分别对应不同的感受野。大的感受野适用大的目标,小的感受野适用小目标,如此网络具备了scale不变性。 不同感受野最终通过concat合并在一起,为了避免通道数爆炸,在每个分支...

2018-11-07 00:06:42 693 0

原创 解决样本不均衡问题-SMOTE

原文链接 SMOTE: Synthetic Minority Over-sampling Technique 解决的问题 很多算法都有一个默认的假设:样本中各个类别的样本数目是均衡的,比如深度学习中几个经典网络结构直接用于不均衡数据效果会很差。本文提出的SMOTE是一种通过线性插值过采样的方法解决...

2018-11-05 21:57:52 571 0

原创 训练一次得到多个模型做集成的方法

参考论文 SNAPSHOT ENSEMBLES: TRAIN 1, GET M FOR FREE 解决的问题 多个分类器集成可以获得超过单个分类器的效果,但集成分类器就要求有多个分类器,在训练速度和测试速度方面不占优势。本文提出的方法可以提高集成学习的训练速度,通过一次训练,获得多个分类器,解决了...

2018-11-04 20:42:57 2274 0

原创 深度学习和传统机器学习的差别

特征构造 是否需要人工构造特征,这应该是深度学习和传统机器学习的最明显的差异。feature engining是传统机器学习中的一个重要组成部分,sift,hog,wavelet等都是解决如何描述数据的问题。深度学习兴起后,feature engining的研究几乎停滞,而end-to-end成...

2018-11-04 01:50:35 8582 0

原创 卷积层的dropout - dropblock

DropBlock: A regularization method for convolutional networks dropout的不足 dropout是深度学习中避免过拟合的手段之一,经典网路结构中,dropout都被放到全连接层之后,鲜有放到卷积层之后。这是因为实验证明卷积层后的dro...

2018-11-02 22:41:13 2049 0

原创 机器学习中的求导

基础知识 机器学习中常见函数求导 幂次 (xu)′=uxu−1(x^u)^\prime=ux^{u-1}(xu)′=uxu−1 指数 (ex)′=ex(e^x)^\prime=e^{x}(ex)′=ex 对数 (log⁡ax)′=1xln⁡a(\log _ax...

2018-10-30 01:44:26 363 0

翻译 在VOC上训练 darknet yolov3

数据集 需要voc2007和voc2012, 目录结构如下 VOCdevkit/VOC2007 VOCdevkit/VOC2012 darknet/sctripts/voc_label.py 在VOCdevkit目录下执行该脚本,生成若干txt,里面都是绝对路径 其中...

2018-10-28 22:49:29 437 0

原创 关于线性分类器的一些总结

线性分类器的分类函数是 f(X)=WX+Bf(X) = WX+Bf(X)=WX+B 其中XXX是特征,WWW是权重矩阵,其行数等于类别数,B是偏置,如果定义X′=(X,1)X'=(X,1)X′=(X,1),分类函数可以写成 f(X′)=WX′f(X&#x2...

2018-10-25 00:10:42 397 0

转载 一个图看懂语义分割框架

来自ICNET的一个图,对理解语义分割框架很有帮助

2018-10-21 01:02:28 820 0

翻译 实时语义分割ICNET

ICNet for Real-Time Semantic Segmentation on High-Resolution Images 作者开源代码 特点 上图可以很好的说明ICNET的特点,它是第一个出现在上图右上角的方法,同时兼顾分割效果和处理速度。准确率超过60%,对于1024x2...

2018-10-21 00:48:20 1313 0

翻译 VOC

记录VOC上的一些stat-of-art resnet Deep Residual Learning for Image Recognition resnet接入Faster-RCNN,VOC07+12集合上检测率最高在75%左右

2018-10-18 23:21:06 107 0

翻译 CIFAR

记录CIFAR上的一些stat-of-art resnet Deep Residual Learning for Image Recognition resnet最好记录是classification error 6.43%

2018-10-18 23:15:02 307 0

翻译 ImageNet

记录ImageNet上的一些stat-of-art resnet Deep Residual Learning for Image Recognition resnet最好记录是top-5 error 3.57%

2018-10-18 23:10:20 483 0

原创 numpy.transpose()进阶理解

numpy.transpose()函数对二维数组就是矩阵的转置操作,对于高维数组则可以任意交换数组。本以为 自己已经理解了它的用法,直到看到如下的代码。 import numpy as np import cv2 size = 128 mat = np.zeros((2,2,size,size...

2018-10-18 22:48:49 279 0

翻译 dither

参考 dither是为了降低颜色量化时引入的信息损失,利用有限的颜色数目,生成一个视觉上和支持更多颜色数目的图相似的近似图。 loyd–Steinberg dithering是比较早期的dither算法,但也是应用最为广泛的算法,以下是其伪码。背后的思想是把量化误差按照固定比例扩散到相邻的后续...

2018-10-17 23:12:02 1784 0

转载 PIL Image.Convert() 转换成黑白图

参考 Image.Convert()的模式"1"可以把彩色图转换成黑白图,很好奇其转换的依据,搜索到其文档,分为三个步骤 彩色图转灰度图 依据ITU-R 601-2 luma transform L = R * 299/1000 + G * 587/1000 + B...

2018-10-17 23:06:00 3309 0

转载 numpy中的copy和view

出处 python中没有传值和传引用的概念,但copy和view有类似的作用。 View view相当于传引用,view和原始数据共享一份数据,修改一个会影响另一个。 slice,array.view(dtype)可以产生view,但array.astype(dtype)产生的不是view ...

2018-10-17 20:00:03 1316 0

原创 训练集,验证集和测试集

要明确train/validation/test三个集合需要先了解什么是hyperparameter。机器学习中模型的参数有的可以通过训练获得最优的值,而有些无法通过训练获得,只能通过人工设置,这部分需要人工设置的参数就是hyperparameters,比如KNN中的K值,神经网络中的网络层数,结...

2018-10-17 18:11:24 274 0

原创 数据可视化: PCA降低到2维显示

import os,cv2 import numpy as np from sklearn.decomposition import IncrementalPCA from matplotlib import pyplot as plt input_folders = [ (‘classA...

2018-10-16 11:52:52 1843 0

原创 数据可视化: PCA显示特征向量

import os,cv2 import numpy as np from sklearn.decomposition import IncrementalPCA input_folder = 'images/' H,W = 72,72 comp_num = 5 ...

2018-10-16 10:53:18 787 0

原创 让DL玩斗地主

A SOLUTION TO CHINA COMPETITIVE POKER USING DEEP LEARNING 概要 当AI遇到游戏才是最有趣的,本文里利用CNN玩斗地主(China Competitive Poker),在一定条件下可以击败人类选手了,也算SOA吧。文中斗地主规则如下 三个...

2018-10-16 01:20:15 700 0

原创 gluoncv-FCN

参考 gluoncv 按照gluoncv的文档中pip install gluoncv方法安装,但是发现这个版本似乎依然有不少问题 准备数据 pascal_voc.py 这个脚本可以下载需要的四个文集,但是用迅雷下载的发现最后一个benchmark.tgz下载后的的hash码不对,另外三个是对的...

2018-10-15 01:27:19 643 8

原创 ubuntu 18.04 + opencv 3.4.3 + python 2.7

windows下似乎直接可以从源码编译出cv2.pyd,但这个组合下却总是没有编译出cv2.so,最后发现是要预先安装python-dev apt install python-numpy apt install python-dev cmake -DCMAKE_BUILD_TYPE=R...

2018-10-13 21:53:06 488 0

转载 让普通用户使用docker命令

增加docker组 sudo groupadd docker 把当前用户加入docker组 sudo gpasswd -a ${USER} docker 重启docker sudo service docker restart 增加组权限 sudo chmo...

2018-10-13 17:28:19 1153 0

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