Machine Learning
文章平均质量分 83
tianrolin
这个作者很懒,什么都没留下…
展开
-
Ubuntu16.04安装NVIDIA显卡驱动
1.下载官方驱动程序http://www.geforce.cn/drivers如果我们直接安装驱动的话,往往会报错:ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver。请接着往下看吧。2. 禁原创 2016-10-16 14:54:06 · 101947 阅读 · 9 评论 -
Caffe框架源码剖析(9)—损失层SoftmaxWithLossLayer
类SoftmaxWithLossLayer包含类SoftmaxLayer的实例。其中SoftmaxLayer层在正向传导函数中将100*10的bottom_data,通过计算得到100*10的top_data。这可以理解为输入数据为100个样本,每个样本特征数量为10,计算这100个样本分别在10个类别上的概率。公式如下:原创 2016-09-20 13:22:30 · 18965 阅读 · 0 评论 -
DeepLab V2安装配置
2016年Semantic Segmentation方向比较出色的一篇文章,DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs https://arxiv.org/abs/1606.00915作者提供了开源的代码,shell版本原创 2017-05-05 22:44:38 · 13675 阅读 · 5 评论 -
Windows平台基于Caffe框架的LeNet网络训练
在Windows平台下使用Caffe的确不如Linux来的方便,至少人家把Shell都已经写好了。但是像我这种VS重度依赖者,还是离不开微软大腿呀…废话不多说,一步步来吧。0. 为了后续文件路径访问的便利,我们先将$CAFFE_ROOT根目录添加到操作系统环境变量PATH中,并重启使之生效。1.首先需要从Yann LeCun的网站上下载手写数字图像库,共为四个压缩包约11MB大小,分别是train-images-idx3-ubyte.gz(训练集图像),train-labels-idx1-ubyte.g原创 2016-05-17 11:59:30 · 4180 阅读 · 10 评论 -
Caffe框架源码剖析(3)—数据层DataLayer
Caffe网络正向传导时,首先进行的是DataLayer数据层的传导。该层从文件读取数据,加载至它的上一层卷积层。反向传导时,因为数据层不需要反传,所以它的Backward_cpu()和Backward_gpu()都是空函数。下面看一下DataLayer类图关系。原创 2016-09-13 08:27:17 · 4207 阅读 · 0 评论 -
Caffe框架源码剖析(2)—训练网络
中间因为工程开发等杂七杂八原因暂停了Caffe源码分析,现在继续补上。上篇分析在函数 train() 中建立了网络,接下来就是进入训练网络步骤了。原创 2016-09-09 22:50:42 · 2860 阅读 · 0 评论 -
Caffe可视化MNIST错误识别样本
当基于LeNet网络的MNIST手写库训练完毕后,测试样本精度能达到99%以上。但是那错误的不到百分之一的样本是什么样子的呢?我们怎么才能把这些识别错误的样本可视化出来呢?1.将测试错误样本打印出来当运行测试时,最后的输出层为AccuracyLayer层。AccuracyLayer对前一层全连接层ip2的10个神经元输出结果进行排序,然后将最大值所对应的神经元序号与标签label进行比较,相等则判定原创 2016-12-09 17:19:31 · 3590 阅读 · 8 评论 -
Caffe框架源码剖析(7)—全连接层InnerProductLayer
全连接层InnerProductLayer的原理很简单,说白了就是矩阵乘法运算。正向传导时输出数据等于输入数据乘上权重,如果有偏置项就再加上偏置项。写成公式就是:top_data = bottom_data * weight + bias.矩阵乘法在CPU端采用OpenBLAS实现,在GPU端则采用NVIDIA cuBLAS实现加速。原创 2016-09-19 16:30:48 · 7017 阅读 · 3 评论 -
VS2013下安装&编译Windows Caffe
想在Windows平台使用Caffe,吭哧吭哧下载了半天第三方库,后来忽然发现Microsoft官方移植了Caffe,配置起来简直太省心了…1. 从Microsoft官方Github上下载Caffe,源代码压缩包不到9MB大小,并将其解压缩到本地目录2.安装NVIDIA CUDA,目前最新版本是7.5,离线安装包约962MB(8.0版也即将要发布了)。3.安装NVIDIA cuDNN(CUDA Deep Neural Library原创 2016-05-15 22:10:31 · 10447 阅读 · 11 评论 -
使用Pycaffe绘制Caffe网络图
执行buildpython setup.py build执行testpython setup.py test输出:----------------------------------------------------------------------Ran 590 tests in 1.079sOK (skipped=7)继续执行installpython setup.py install输出原创 2016-10-02 11:51:33 · 2870 阅读 · 0 评论 -
Caffe框架源码剖析(1)—构建网络
今天花了一整天时间进行阅读和调试Caffe框架代码,单单是以Lenet网络进行测试就可见框架的大致工作原理。贾扬清在Caffe中大量使用了STL、模板、智能指针,有些地方为了效率也牺牲了一些代码可读性,处处彰显了大牛风范。为了他人阅读方便,现将代码流程简单梳理一下。原创 2016-05-18 21:02:44 · 4527 阅读 · 2 评论 -
Caffe框架源码剖析(8)—激活函数层ReLULayer
LeNet中使用修正线性单元(Rectified Linear Unit,ReLU)代替Sigmoid作为激活函数,目的是为了加速收敛。激活函数层ReLULayer原理很简单,就是实现了对输入数据的非负处理,将小于零的数据进行了截断。原创 2016-09-20 09:45:52 · 5475 阅读 · 0 评论 -
Caffe框架源码剖析(6)—池化层PoolingLayer
池化层往往在卷积层后面,通过降采样来降低卷积层输出的特征向量,同时改善结果,不易出现过拟合。最常用的降采样方法有均值采样(取区域平均值作为降采样值)、最大值采样(取区域最大值作为降采样值)和随机采样(取区域内随机一个像素)等。PoolingLayer类从Layer基类单一继承而来,没有再多的子类。具体定义在pooling_layer.hpp中,template class原创 2016-09-19 13:40:54 · 6989 阅读 · 0 评论 -
Caffe框架源码剖析(4)—卷积层基类BaseConvolutionLayer
数据层DataLayer正向传导的目标层是卷积层ConvolutionLayer。卷积层的是用一系列的权重滤波核与输入图像进行卷积,具体实现是通过将图像展开成向量,作用矩阵乘法实现卷积。原创 2016-09-16 15:47:11 · 1687 阅读 · 0 评论 -
Caffe框架源码剖析(5)—卷积层ConvolutionLayer
ConvolutionLayer是BaseConvolutionLayer的子类,功能较为简单。类中不包含成员变量,仅包含几个虚函数的实现。conv_layer.hpp头文件的定义如下:原创 2016-09-18 09:20:11 · 3691 阅读 · 0 评论 -
Caffe支持多GPU分布式计算
Caffe允许多GPU间并行,与AlexNet不同,多GPU模式的内涵在于“不共享数据,却共享网络”。所以,允许多个solver存在,且应用到不同的GPU上去。第一个solver会成为root_solver,第二、第三个solver就会成为shared_solver。直接使用solver_count的地方是DataLayer层中的DataReader对象。每一个DataLayer都有一原创 2016-09-12 17:00:21 · 7919 阅读 · 0 评论 -
语义分割经典神经网络框架汇总
语义分割经典神经网络框架汇总FCN Jonathan Long, Evan Shelhamer, Trevor Darrell. 2014. Fully Convolutional Networks for Semantic Segmentation DeepLabv1 Liang-Chieh Chen, George Papandreou, Iasonas ...原创 2018-02-26 19:53:37 · 3356 阅读 · 0 评论