- 博客(29)
- 收藏
- 关注
原创 Transformer的前世今生
引言Transformer在今天已经非常火了, 不管是NLP, 还是CV, 效果表现均很好. 那么这是Transformer到底是什么呢?要把Transformer的来龙去脉讲清楚, 首先得从attention开始, attention刚出来时, 直接把Google翻译送上了人生巅峰.在Transformer的出现之前的NLP相比CV来说并不那么活跃, 同时难度相对也比较大, 用得最多的也就是LSTM那一套, 不可能像CV那样模型可迁移性很强.而Transformer的出现后, 简直把N
2022-03-14 18:33:44
5387
原创 深度学习模型概要总结
基础模型我将用于分类的模型统称为基础模型,不仅仅可以用作分类,且可以做为其他任务的基础网络模型结构,用作预训练模型。 包括: AlexNet, VGG, GoogleNet系列, ResNet, DarkNet系列等 AlexNet 可以说深度学习火起来的开创之作 Group思想沿用至今 VGG 2014在ImageNet数据集上的亚军,那年冠军的是:GoogleNet,0....
2018-09-18 15:59:12
1269
原创 深度解析DeepID2+之二进制化
在看这篇论文时,一开始对二进制化的理解始终感觉不够透彻。看了很多别的关于DeepID2+的博客,都没有看到详细的解释。因此写这个博客,专门解析这一个点。毕竟是个人的观点,如果大家有更好的解释,欢迎讨论。> 为什么能够通过上面的两个统计结果把浮点值向量转换成二进制值向量呢?> 这个统计的来源:> - 实验数据量: 46,594条人脸图片数据> - 假设人脸的特征表示向...
2018-05-23 10:24:21
823
原创 caffe和最新的tensorflow的依赖protobuf不兼容问题
今天在使用caffe的画图工具时,大致出现如下错误:AttributeError: 'google.protobuf.pyext._message.RepeatedScalarConta' object has no attribute '_values'这是因为caffe不支持protobuf-3.0以上的版本需要重新安装protobuf: pip install proto
2017-06-15 16:45:08
4766
原创 caffe中的normalization实现
首先得感谢某牛的:如何在caffe中增加Layer以及caffe中triplet loss layer的实现所以接下来就按照这个牛的介绍,逐个往里面添加东西就好了。构造设置函数这里就先忽略,直接进入前馈和反馈的实现。原理介绍可以参照上一篇normalization的实现原理。前馈的过程相对来说是比较简单的,代码如下:template void NormalizationLay
2016-09-23 16:50:22
5609
原创 normalization的实现原理
我是在FaceNet的论文中看到这个东西的。那么在其具体的实现原理是怎么样的呢?归一化,的方式有很多,在那篇论文中,相当于做的是希望:每个点都映射到一个球面上。也就是希望:为了达到这个目的,FaceNet是这样来做的:所以在实现的时候,这就是前馈的过程。那么反馈的时候,应该怎么做呢?主要就是集中在:y_i对x_i的偏导上面;为了参数完整的反馈
2016-09-23 11:44:18
2287
转载 linux下python调试
之前一直在window下写python脚本,习惯用eclipse调试编辑,突然换到在linux环境下,有点不适应。。。python有自带的pdb库,可以实现简单的调试功能,基本命令与gdb类似,不过功能不会有gdb那么强大,pdb主要支持多断点设置(可条件设置),代码级单步调试,查看堆栈信息,代码查看,post-mortem调试,详细信息可以查看: http://docs.python
2016-09-07 17:06:06
1501
转载 x64下vs2013 C++遍历目录下所有文件使用_findnext()调试时中断
今天尝试在VS2013 win32控制台下写一个手写数字的机器学习程序,其中需要遍历某目录下的所有.txt文件,在网上查了大量方法,主流是这样的#include #include #include #include using namespace std;void getFiles(string path, vector& files, string postfix){
2016-08-23 15:55:56
4835
4
原创 caffe源码阅读9-loss_layer.hpp+各cpp
loss_layer:AccuracyLayer类;LossLayer类;ContrastiveLossLayer类;EuclideanLossLayer类;HingeLossLayer类;InfogainLossLayer类;MultinomialLogisticLossLayer类;SigmoidCrossEntropyLossLayer类;Softma
2016-08-09 16:39:49
2910
转载 caffe源码阅读-插曲-math_function.cpp
来源:Caffe源码(一):math_functions 分析主要函数math_function 定义了caffe 中用到的一些矩阵操作和数值计算的一些函数,这里以float类型为例做简单的分析1. caffe_cpu_gemm 函数:template<>void caffe_cpu_gemmfloat>(const CBLAS_TRANSPOSE TransA,
2016-08-09 11:42:39
1965
原创 caffe源码阅读8-common_layer.hpp+各cpp
common_layer:ArgMaxLayer类;ConcatLayer类:EltwiseLayer类;FlattenLayer类;InnerProductLayer类;MVNLayer类;SilenceLayer类;SoftmaxLayer类,CuDNNSoftmaxLayer类;SplitLayer类;SliceLayer类。呃,貌似就晓得
2016-07-27 15:59:33
1873
原创 caffe源码阅读7-neuron_layers.hpp+各cpp
neuron_layers.hpp:NeuronLayer类AbsValLayer类BNLLLayer类DropoutLayer类PowerLayer类ReLULayer类,CuDNNReLULayer类SigmoidLayer类,CuDNNSigmoidLayer类TanHLayer类,CuDNNTanHLayer类ThresholdLayer类这
2016-07-25 16:04:00
2663
原创 caffe源码阅读6-vision_layers.hpp+各cpp
vision_layers.hpp:ConvolutionLayer类,CuDNNConvolutionLayer类;Im2colLayer类;LRNLayer类;PoolingLayer类,CuDNNPoolingLayer类。在这个文件中一共包含了上面的4种层。因为在卷积的时候,caffe为了加速处理,使用了小技巧im2col,所以我们先来看看im2colLayer
2016-07-19 16:20:04
3618
原创 caffe源码阅读5-各种layer概述
工厂模式:一个工厂可以生产N种产品,那么就需要N种磨具。因为从来没有玩过设计模式,而layer是采用工厂模式的,就临时看了一下,大概可以用上面的那一句话来描述吧。基本可以说caffe中的所有层都是继承了layer类的,那么在caffe中,一共有哪些层呢?可以在caffe.proto中看到: enum LayerType { // "NONE" layer type is
2016-07-19 11:36:35
2566
原创 caffe源码阅读4-layer.hpp
An interface for the units of computation which can be composed into a Net.Layer&s must implement a Forward function, in which they take their input (bottom) Blob&s (if any) and compute their outp
2016-07-18 18:13:46
2217
原创 caffe源码阅读3-blob.cpp
1 第一个方法:Reshape()template void Blob::Reshape(const int num, const int channels, const int height, const int width) { CHECK_GE(num, 0); CHECK_GE(channels, 0); CHECK_GE(height, 0); CHECK_
2016-07-18 16:06:54
1053
原创 caffe源码阅读2-syncedmem.hpp+.cpp
因为在看Blob.hpp的时候,有一个东西不好理解,里面最重要的两个东西data, diff是定义成: shared_ptr data_; shared_ptr diff_;shared_ptr也就是智能指针,等涉及到其方法的时候再做一点说明。
2016-07-18 10:32:35
1535
原创 caffe源码阅读1-blob.hpp
其实网上已经有很多源码解读了,但我还是想自己看一遍。呃,不得不承认,我连C语言的代码都写得不好,C++也从来没有怎么学过。所以可能我看的方式和大家不太一样,当作自己的学习记录吧。水平有限,如果您看到了有说得不对的地方,请大方的指出来,相互交流学习,:)。应该基本可以公认的一点:基本每个类里面所有方法都是对自己的数据进行操作,而自己的数据通常也是私有类型的。鉴于以上这一点,所
2016-07-15 16:41:37
886
原创 使用OpenCV进行批量图像缩放
问题是这样子的,有好多个文件夹,希望对每个文件夹中的图像都缩放到同一个比例。那么不可避免,需要读取每个文件夹中的图像名称:void getFiles(string path, vector& files){ //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hFile
2016-06-27 09:47:36
1681
原创 提取caffe前馈的中间结果+逐层可视化
参考官方网址:http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/00-classification.ipynb当caffe训练出一个模型,想用这个模型进行分类参见:使用caffe训练好的模型进行分类本文接着介绍如何在将caffe前馈时的中间结果显示出来。以下提到的代码并不能单独使用,需要加上使用caff
2016-06-13 17:56:45
10956
2
原创 使用caffe训练好的模型进行分类
最近在玩这个东西,按照网上的教程一步步的完成网络训练,但是却不知道该怎么使用。百度了一下还是没有确实连接的样子。可能这种问题实在太低级了哈。几乎可以说在官网上面有详细的说明。只是刚开始接触这个没有仔细看完吧。首先关于适用caffe image-net如何训练的官方教程在:http://caffe.berkeleyvision.org/gathered/examples/imagenet
2016-06-12 21:02:41
25102
原创 使用caffe训练自己的数据
这里先介绍采用image-net来训练自己的数据:1 准备数据: 1.1 训练数据准备: 假设放在: ~/Data/train 1.2 确认数据准备: 假设放在: ~/Data/val 1.3 准备两个txt文档: 1.3.1 准备train.txt:
2016-06-08 17:40:13
2538
原创 ubuntu14.04安装CUDA+theano
声明: 该服务器系统是ubuntu14.04 64bit 安装显卡驱动:(来源:http://blog.youkuaiyun.com/xizero00/article/details/43227019/) 在线安装: 首先验证该服务器是否有nvida的显卡: lspci | grep -i nvidia 查看该服务
2016-06-08 17:37:40
1582
原创 安装caffe
安装caffe: 直接按照网址:http://www.linuxidc.com/Linux/2015-07/120449.htm 在执行:for req in $(cat requirements.txt); do pip install $req; done 的时候,出现了一些问题: (1) 在安装scikit-image的时候,总是出现没有'doc/build'
2016-06-08 17:35:11
2079
原创 speech recognition with deep recurrent neural networks-论文笔记
论文题目:speech recognition with deep recurrent neural networks作者:Alex Graves, Abdel-rahman Mohamed and Geoffrey Hinton论文中第2部分,介绍关于RNN的一些知识:对于一个给定的输入序列 x = (x1, ..., xT), 一个标准的RNN通过迭代下面一系列方程来计算隐
2016-01-11 16:16:31
3011
原创 数据挖掘之基础知识
一、背景数据挖掘,差不多好些年了吧,各种各样的挖掘算法都有了。但是对于数据挖掘这个词语,我们最容易想起的故事应该是啤酒尿不湿,据说某年沃尔玛的数据挖掘大神们对超市的售货情况做了一次挖掘,发现有一批人喜欢买啤酒和尿不湿,真是很奇怪的又有趣的事情,后来沃尔玛真的就把啤酒和尿不湿放在相邻的商品架上,结果销量大增了。后来这些大神们对这一现象的解释是早上妻子嘱咐老公下班回家买尿不湿,然后男的进超市后
2015-10-27 23:45:07
572
原创 排序问题思考
几个月前面试被问到这样一个问题:对一个无序的数组进行排列,要求奇数在左边,偶数在右边,奇数按照从大到小,偶数按照从小到大。方法1:那个时候我给出的解决办法就和题目的描述一样设置两个变量i,j,i从左边扫描数组,j从右边扫描数组,当i位置为偶数,j位置为奇数就交换,直到i==j,这样就把奇数偶数分开了,再对两边分别快速排序就好了。假设数组大小为n,奇数个数为s,偶数个数为t,那么上面的时
2015-08-14 10:19:12
454
原创 方差动态规划
有一个朋友在讨论群中问到,如果可以动态的计算方差。因为他们的数据采样是一段周期一段周期的,如果每次都把全部的数据记录下来,再去求方差的话,太费劲了,而且存储消耗也不合适。所以希望能够有一种办法,每次计算总体方差时,不需要以前的原始数据,而是以前的方差就好了。来回忆一下方差的计算公式是怎样的:那么问题就转换成了:已知f(n),求f(n+1)?这个问题是否可以实现呢?那
2015-08-14 10:12:06
1567
2
原创 均值动态规划求解
今天遇到这样一个问题,求一个数列的均值,但是最好不要用累加,因为可能溢出。解决办法1 - 类似累加:假设数据总长度为n,那么可以:[ code=C C++ ]float avg(int* data, int n){ float result = 0.0; for(int i = 0; i { result += (flo
2015-08-14 09:44:58
532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人