
深度学习
文章平均质量分 61
DCD_Lin
这个作者很懒,什么都没留下…
展开
-
深度学习【62】旋转不变性人脸检测PCN
原创 2018-11-16 20:28:04 · 2099 阅读 · 1 评论 -
深度学习【22】Mxnet多任务(multi-task)训练
github上有两个版本的多任务训练分别是: 1、https://github.com/miraclewkf/multi-task-MXNet 2、mxnet自带的例子 第一个由于其数据迭代器是Image,可能会比较慢。 第二个的例子是mnist,需要自己修改数据迭代器。 这里主要记录基于ImageRecordIter迭代器的多任务训练。1、数据制作 需要自己生成*.lst文件,里...原创 2017-10-27 09:10:04 · 4603 阅读 · 1 评论 -
深度学习【21】mxnet 安装0.9.5版本 解决cub问题
git clone https://github.com/dmlc/mxnet.gitgit checkout v0.9.5git submodule update --init --recursive删除mxnet里面的cubgit clone https://github.com/NVlabs/cub原创 2017-10-12 10:48:34 · 1138 阅读 · 1 评论 -
深度学习【20】mxnet im2rec 使用
生成 .lst python path/to/mxnet/tools/im2rec.py --list True --recursive True --train-ratio 0.9 dataName path/to/data 生成 .rec python path/to/mxnet/tools/im2rec.py --num-thread 4 --pass...原创 2017-09-27 15:47:29 · 1270 阅读 · 0 评论 -
深度学习【19】ncnn安卓搭建并使用自己的模型
ncnn安卓搭建并使用自己的模型github上面已经给了一个ncnn的安卓例子,地址:https://github.com/dangbo/ncnn-mobile clone 这个项目后用Android studio就可以打开(12.19更新:这个项目已经更改,不能直接运行,需要自己编译ncnn,然后更改ncnn-mobile/squeezencnn-AS/app/src/main/jni/A...原创 2017-09-15 10:03:44 · 11764 阅读 · 17 评论 -
深度学习【18】ncnn与NNPACK-darknet速度比较
ncnn与NNPACK-darknet速度比较在三星s7edge上,使用4线程,对ncnn和nnpack-darknet进行速度的比较。 模型大小:12M 运行次数:20次 输入图片大小:416*416 平均使用时间:ncnn:300ms,nnpack:700ms。ncnn使用的是网上别人编译好的静态库。nnpack-darknet中nnpack使用的是caffe2的camke文件...原创 2017-09-14 11:38:13 · 5295 阅读 · 3 评论 -
深度学习【16】YAD2K,pytorch-caffe-darknet-convert,转换后概率不一样的问题
darknet转keras时,预测出来的概率偏差较大,主要原因是:1、darknet的resize图片时用到了0.5的填充,具体可以看darknet的resize代码。2、darknet的BN层中epsilon=0.000001,而YAD2K的BN层epsilon默认0.001。只要修改 conv_layer = (BatchNormalization(epsilon=0.0...原创 2017-08-30 11:11:43 · 4135 阅读 · 2 评论 -
深度学习【15】darknet中im2col代码分析
darknet里面的im2col用的是caffe的im2col代码。多通道矩阵数据(如彩色图像)经过im2col操作后得到一个矩阵,同时将多个卷积核也转成一个矩阵的形式。这样一来就能够把卷积操作转换成矩阵乘法。本文主要讨论im2col的实现。 看一下im2col的参数:voidim2col_cpu(float*data_im,intchannels,intheight,intwid...原创 2017-07-24 10:56:05 · 2965 阅读 · 0 评论 -
深度学习【14】代价敏感损失函数
def class_balanced_sigmoid_cross_entropy(logits, label, name='cross_entropy_loss'): """ The class-balanced cross entropy loss, as in `Holistically-Nested Edge Detection <http://arx...原创 2017-06-01 13:52:09 · 9045 阅读 · 4 评论 -
深度学习【13】tensorflow保存graph和参数为pb文件
from tensorflow.python.framework.graph_util import convert_variables_to_constantsgraph = convert_variables_to_constants(sess, sess.graph_def, ["out"]) #out为保存网络的最后输出节点名称tf.train.write_graph(grap...原创 2017-05-24 14:28:36 · 7939 阅读 · 0 评论 -
深度学习【12】DL平台GPU分配
本说明只适用于GPU显存分配,以及如何使用指定使用某个GPU。 要同时使用多GPU计算时,tensorflow需要自己修改代码,theano需要安装libgpuarrary(还没安装成功)theano:例子:THEANO_FLAGS='device=gpu0,lib.cnmem=0.1' python test.py说明:device=gpu0,表示使用ID号为0的G...原创 2017-05-23 12:00:20 · 1933 阅读 · 0 评论 -
深度学习【10】利用LSTM学习梯度下降法等优化方法:Learning to learn by gradient descent by gradient descent
原创 2016-07-04 14:48:00 · 9863 阅读 · 8 评论 -
深度学习【9】CNN+RNN自动图像描述
原创 2016-07-01 12:56:56 · 3410 阅读 · 0 评论 -
深度学习【8】基于循环神经网络(RNN)的端到端(end-to-end)对话系统
注:本篇博客主要内容来自:A Neural Conversational Model,这篇论文。http://blog.youkuaiyun.com/linmingan/article/details/51077837 与传统的基于数据库匹配的对话\翻译系统不一样的是。基于RNN的end-to-end方法的对话\翻译系统,不仅不需要拥有庞大的数据库支持。而且该方法的对话\翻译结果有时候往...原创 2016-04-06 19:48:13 · 7688 阅读 · 2 评论 -
深度学习【7】Ubuntu安装深度学习平台Torch7以及zbs_torch IDE
http://blog.youkuaiyun.com/linmingan/article/details/510390171、安装Torch(CPU版本)Torch的安装直接参考官网的就行了:http://torch.ch/docs/getting-started.html#_具体如下: git clone https://github.com/torch/distro.git ~/to...原创 2016-04-01 19:05:19 · 5775 阅读 · 14 评论 -
深度学习【4】基于深度循环神经网络(DRNN)的单通道音乐人声分离
注:这篇博客的内容来自论文SINGING-VOICE SEPARATION FROM MONAURAL RECORDINGS USING DEEP RECURRENT NEURAL NETWORKS。http://blog.youkuaiyun.com/linmingan/article/details/50957525单通道音乐人声分离的目的是,从一首单通道歌曲中分离出人声和伴奏声。可以用表示,其中...原创 2016-03-22 19:05:52 · 16072 阅读 · 7 评论 -
深度学习【23】图像风格化总结
1、基于优化的方法基于优化的方法,是在Image Style Transfer Using Convolutional Neural Networks提出的。也是图像风格转换的开山之作。 该论文最大的创新点是,找出了能够表征风格和内容的特征。这些特征都是从已经训练好的VGG19抽取出来的。表征内容的特征是由VGG19中的多层卷积层的输出构成的;而表征风格的特征是由VGG19中多层卷积层的输出...原创 2017-11-10 15:53:09 · 8733 阅读 · 0 评论 -
深度学习【26】wavenet-歌声合成
论文:A NEURAL PARAMETRIC SINGING SYNTHESIZER 完整论文:A Neural Parametric Singing Synthesizer Modeling Timbre and Expression from Natural Songs 之前研究过一段时间的wavenet语音合成。第一版wavenet的一个最大的问题是合成非常耗时,但是就有尝试过各种方案...原创 2018-03-08 14:16:45 · 5628 阅读 · 0 评论 -
深度学习【27】pytorch Variable变量方法的使用
这边记录一些Variable变量相关的一些方法。将一个numpy的张量转成Variable:Vtensor = torch.autograd.Variable(torch.LongTensor(np.int64(np.asarray(nptensor))))##torch.LongTensor确定变量类型,根据需要更改类似reshape操作:out = output...原创 2018-03-31 16:27:51 · 2143 阅读 · 0 评论 -
深度学习【61】centos中caffe找不到cblas,atlas
之前一直在ubuntu下安装的caffe,在centos安装caffe时,发现找不到cblas和atlas。后面发现是因为在centos里面cblas不叫cblas,atlas不叫atlas。而是cblas叫 satlas , atlas叫 tatlas。因此需要在Makefile里相应的地方(大概在393行处)更改一下:将 LIBRARIES += cblas atlas改成: LIBRAR...原创 2018-10-17 18:42:53 · 2618 阅读 · 1 评论 -
深度学习【60】物体检测:CornerNet
很有意思的一篇文章,使用热图来预测bbox的左上角和右下角,这两个边角点的坐标,而不依赖于anchor box。在人体姿态检测和人脸特征点识别领域里面,有不少论文都是使用热图来表示坐标点。由于bbox也是一组坐标点,所以在物体检测应当也可以使用热图来做,该论文便是一个很好的思路。论文的基础网络使用的是HG网络(漏斗网络),并且又两个HG网络堆叠起来,因此模型还是很大的。根据作者提供的训练好的模型文...原创 2018-09-20 19:11:43 · 2999 阅读 · 4 评论 -
深度学习【58】物体检测:yoloV2笔记之训练
之前基于yoloV2做过一段时间的物体检测,当时对yoloV2整个框架了如指掌。由于没有及时写笔记记录一下,现在回过头来很多东西都快忘光了。本篇博客不会记录如何使用darknet训练yoloV2,而更注重的的是整个yoloV2的算法,以及其中的一些细节。废话不多说,我们直接开始。物体检测训练主函数yoloV2的训练函数主函数在examples/detector.c中的train_det...原创 2018-08-30 15:19:44 · 2138 阅读 · 12 评论 -
深度学习【59】物体检测:yoloV2笔记之预测
yoloV2的预测代码在examples/detector.c中的test_detector函数中。具体步骤为:1、模型、参数、待检测图片等信息的加载2、图片resize,这里使用的是letterbox_image函数。与opencv的resize函数不同的是letterbox不会使物体变形。这边是移植到手机端的一个坑。3、前向传播,获取网络输出,大小为13*13*425(假设,输入为...原创 2018-08-31 10:10:36 · 1019 阅读 · 3 评论 -
深度学习【57】ShuffleNet V2
这是shuffleNet的一个改进版本。论文分析了影响运行速度的几个因素,然后提出了一些指导原则。总的来说,这是一篇很不错的论文,值得学习。现在很多模型的速度评估都是用FLOPs这个指标,但这个指标用来评价速度是不直接的。因为影响模型速度的因素不仅仅是FLOPs,内存访问操作所消耗的计算(memory access cost,MAC),以及平台因素。对于MAC这种情况,有很多操作会有非常高...原创 2018-08-03 14:40:19 · 3354 阅读 · 5 评论 -
3D【4】人脸重建:Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric
该论文主要是用CNN直接重建3D人脸,而不是预测3DMM模型的参数,网络结构是漏斗网络( HG)。论文提出了三种方案,第一种是直接从图片重建,第二种是加入了人脸特征点,第三种是多任务(重建+人脸特征点预测)。效果最好的是第二种方法。值得注意的是,该论文不是直接预测顶点的x、y、z坐标。而是将mesh转成voxel,变成一个192*192*200的矩阵。这样就比较适合CNN。我们先看看mesh...原创 2018-02-24 10:24:18 · 4732 阅读 · 5 评论 -
3D【5】人脸重建:Learning the Multilinear Structure of Visual Data阅读笔记
该论文主要内容是使用张量分解来表征一个3D人脸,如下公式: 其中B(1)B(1)B_{(1)} 是通过大量数据学习出来的,而A(m)A(m)A^{(m)} 则是重构出 XXX 的系数,⊙⊙\odot 是克罗内克积。克罗内克积:一个3×1的向量和一个4×1的向量进行克罗内克积,会得到12×1的向量。具体的可参考wiki。每个A(m)A(m)A^{(m)} 可以表示不同的大分类,比如光...原创 2018-03-12 17:14:21 · 995 阅读 · 3 评论 -
3D【6】人脸重建:Multilinear Autoencoder for 3D Face Model Learning
该论文输入的是一个扫描的3d mesh,输出是一个顶点数的3d mesh。这个过程很像NICP的3d人脸配准过程,但是NICP是一个优化的过程。而该方法在学习好了网络后,可以直接使用。使用GPU的话,速度应该可以非常快。该论文还为利用CNN重建3D人脸提供了另一种思路。目前看到的用CNN进行3D人脸重建,其输出要么是3DMM的系数(没有人脸的真是深度信息),要么是将mesh立方体化(一个n1×...原创 2018-03-14 10:59:27 · 3076 阅读 · 0 评论 -
3D【9】人脸重建:Joint3D Face Reconstruction and Dense Alignment with Position Map Regression
该论文同时预测人脸特征点和3D mesh的顶点坐标x,y,z。人脸特征点没什么好说的,现在已经有很多成功的案例了。主要关注该论文是如何预测顶点坐标的。其实大概想想,就能够大致确定直接预测顶点坐标是有不少困难的。首先是,你不能把所有的顶点拉成一个向量,用全连接层预测;要用卷积层作为输出的话,mesh又不能直接表示成一个固定大小的张量(这正好是用cnn来预测所需要解决的问题,比如将mesh立方体化)。...原创 2018-03-22 17:38:02 · 5894 阅读 · 29 评论 -
深度学习【30】pytorch 自定义数据迭代器
class myImageFloder(data.Dataset): def __init__(self,root,list,transform):#list:训练数据列表,比如:train.txt文件,每一行是一个训练样本 fh = open(list) imgs=[] for line in fh.readlines():原创 2018-04-01 14:28:48 · 2511 阅读 · 0 评论 -
深度学习【29】pytorch 自定义损失函数
构建一个加权函数: loss=w1∗loss1+w2∗loss2loss = w1*loss1+w2*loss2class myloss(nn.Module): def __init__(self,w1,w2): super(myloss,self).__init__() self.w1 = w1 self.w2 = w2 r原创 2018-04-01 14:16:50 · 10689 阅读 · 0 评论 -
深度学习【28】pytorch 遇到RuntimeError: input is not contiguous
遇到这个问题一般是使用了view或者index_select函数,解决方法:data = data.view(bsz, -1).t().contiguous()#只要在view函数后面再加个contiguous()就ok原创 2018-03-31 16:31:55 · 6790 阅读 · 0 评论 -
深度学习【3】keras:保存keras学习好的深度神经网络模型参数为二进制和txt文件
http://blog.youkuaiyun.com/linmingan/article/details/50906141由于工程需要,保存为hdf5的keras权值在c/c++中的读取比较不方便。因此将keras中的权值剥离出来,并保存为二进制文件或者txt文件。在进行代码的编写之前我们必须先知道keras中model类对于每一层的参数如何表示的。以下,我将以加入Batch Normalization的...原创 2016-03-16 16:23:20 · 11971 阅读 · 0 评论 -
深度学习【1】ubuntu中利用h5py保存训练好的keras 神经网络模型
利用h5py保存的模型所占的空间非常小。在利用h5py保存keras训练好的模型之前需要先安装h5py,具体的安装过程可参考我关于h5py安装的博文:http://blog.youkuaiyun.com/linmingan/article/details/50736300利用h5py保存和读取keras模型的代码如下: import h5py from keras.models import m...原创 2016-02-25 11:57:11 · 11343 阅读 · 2 评论 -
深度学习【25】物体检测:Tiny SSD
论文:Tiny SSD: A Tiny Single-shot Detection Deep Convolutional Neural Network for Real-time Embedded Object Detection 记录这篇论文的原因主要是想记录一下在优化yolov2时所用的网络。该论文将SSD模型优化到只有2.3M,同时在voc 2007[评测数据集上面的mAP比tiny yo原创 2018-03-03 15:26:31 · 2601 阅读 · 6 评论 -
深度学习【35】CondenseNet
condenseNet与mobilenet、shuffleNet一样都是小而精悍的模型。与shuffleNet一样都是为了优化1*1卷积的计算量。同时借鉴了denseNet的跳跃连接和shuffleNet的channel shuffle。但是没有使用mobilenet的depthwise 3*3卷积,而是使用了分组卷积。condenseNet比mobilenet模型小了6M,计算量小了2倍,同时在...原创 2018-04-03 11:34:43 · 3110 阅读 · 0 评论 -
深度学习【40】Improved Techniques for Training GANs
该论文提出了一些关于训练GAN的技巧,在mnist上生成的样本人类无法分辨真假,在CIFAR-10上生成的样本人类分辨的错误率为21.3%。优化feature matching为G网络加了一个损失函数: 函数f表示D网络最后输出层的前一层特征图。f(x)由真实数据抽取而来,f(G(z))为G网络生成的图片抽取而来。Minibatch discriminationGAN训练过程中经常会出现G网络原创 2018-04-10 14:24:39 · 3660 阅读 · 3 评论 -
深度学习【47】Unsupervised Image-to-Image Translation with Generative Adversarial Networks
我们之前介绍了pix2pix和pix2pixHD都是属于有监督的图片到图片的转换,也就是其训练数据集要求每一张待转换图片必须有一张目标转换图像相对应。今天我们来看看如何利用GAN做无监督的图像到图像的转换。既然是无监督的图像到图像转换,那么在训练数据集中肯定是没有成对的数据了。比如性别的转换,假设我有张奥巴马的图片,那么肯定不能找到一张女的奥巴马图片吧吧。所以这就叫无监督。还是以性别转换为例,我们还原创 2018-04-14 21:45:12 · 4041 阅读 · 0 评论 -
深度学习【46】pix2pixHD
英伟达的pix2pixHD,能够合成高清的2048*1024图片,简直振奋人心。pix2pixHD是我之前介绍过的pix2pix的改进版本,使用多由粗到精的G网络和多尺度D网络(每个D网络都是用了pix2pix中同样的patch技术)。论文一开始用pix2pix尝试合成更高分辨率的图片,但发现效果不好,训练也很不稳定。所以就对pix2pix进行了一顿魔改。我们来看看他们是怎么改进的。由粗到精的G网络原创 2018-04-14 16:38:49 · 10448 阅读 · 0 评论 -
深度学习【34】DenseNet
DenseNet将跳跃连接做到了极致。DenseNet的优点:防止梯度弥散,加强特征传播,有利特征融合,减少参数量。随意领略一下denseNet的跳跃连接: 每层都有来自前面所有层的输入,每层的输出通道都为4。在设计denseNet的时候,一般只有在两个下采样层之间的那些网络层进行上图那样的跳跃连接,比如: 在每个Dense Block之间都有一个池化层。DenseNet在处理来当前卷积原创 2018-04-02 11:20:50 · 725 阅读 · 0 评论 -
深度学习【33】Squeeze-and-Excitation Networks
单层的卷积层可以通过将空间信息和通道之间的信息,以达到信息的组合交互。但单层卷积层会受限于局部感受野。通过过堆叠一系列的卷积层,非线性激活函数和下采样层,CNN能拥有全局感受野,并抽取出不同层次的特征。通过增加不同的学习机制(网络结构)可以使得CNN的能力更强。比如Inception系列的多尺度卷积核,以及attention机制等等。该论文设计了一种新的结构(Squeeze-and-Excitati原创 2018-04-02 10:19:20 · 446 阅读 · 0 评论