- 博客(10)
- 收藏
- 关注
原创 Caffe 实践 在数据集MNIST上使用LeNet
概述 安装好Caffe后,这篇文章是我根据http://caffe.berkeleyvision.org/gathered/examples/mnist.html 进行学习的笔记 准备数据 cd $CAFFE_ROOT #从http://yann.lecun.com/exdb/mnist/网上下载四个文件,train-images-idx3-ubyte train-labels-idx1-u
2016-10-04 05:37:57 529
原创 深度学习论文笔记 [图像处理] Deep Residual Learning for Image Recognition
概要证明了残差网络更容易训练,而且网络更深的时候能够取得更高的准确率。在ImageNet数据集上我们使用152层的残差网络并取得了3.57%的错误率。简介深度网络一直存在梯度消散的问题,但最近这个问题已经被normalized initialization和batch normalization很大程度的解决了。另一个问题是网络效果变差,当网络深度增加的时候,准确率反而比层数低的网络要差,但它并不是
2016-09-29 22:00:45 1877
原创 Caffe 实践 在macOS (版本号10.11) 上安装Caffe
安装指南 主要是按照Caffe官方指南安装的,但遇到各种各样的问题。下面把我安装时遇到的问题和教训列出来,做个记录 无法用brew install 安装snappy和leveldb。后来发现是因为我更新了MacOS的版本,homebrew原有的版本就失效了,原本brew update能够更新到最新的版本,但那个也失效了,于是我只能卸载掉homebrew重新安装它。结果就成功安装snappy和
2016-09-29 18:53:32 1101
原创 Caffe 源码阅读笔记 [基本模块] Caffe.cpp
概述 到目前为止,我们已经把所有Caffe的基本模块从最基本的SyncedMemory到最上层的Solver都过了一遍。那么Caffe最后是怎么把他们串在一起的呢?这一篇主要讲解Caffe从main函数开始是怎么完成整个训练过程的 Caffe支持的命令 train: 训练或者调整一个模型 test : 在测试集上测试一个模型 device_query : 打印GPU的调试信息 time:
2016-09-28 22:18:54 1348
原创 Caffe 源码阅读笔记 [基本模块] Solver
概述 前面介绍了网络Net模块来描述一个神经网络,Solver则是一个计算模块对网络进行参数的优化。跟Layer一样,Caffe把Solver实现成一个接口,使得开发者可以开发自己的Solver。 Solver成员变量 SolverParameter param_; // Solver参数 int iter_; // 第几次迭代 int current_step_; //
2016-09-27 21:48:49 964
原创 Caffe 源码阅读笔记 [基本模块] 网络Net
概述 前面讲了Layer,Net就是把Layer串起来的神经网络。本篇主要讨论在神经网络中如何进行Layer之间的管理和计算 Net成员变量 // Net相关变量 string name_; // 网络名字 Phase phase_; // TRAIN 或者 TEST // 网络的输入和输出Blobs以及在blobs_中对应的索引 vector*> net_inp
2016-09-24 22:18:49 790
原创 Caffe 源码阅读笔记 [基本模块] Layer和LayerFactory
概述 因为前两篇讲的是数据的读取,本来是打算阅读DataLayer这一块的,但考虑到DataLayer是Layer的子类,因此从Caffe的另一个重要模块Layer开始看起感觉更自然。毕竟Caffe里面最多的代码都是各种各样的Layer,整个Caffe的神经网络都是一个个Layer串起来的,DataLayer只是网络的第一层而已。 Layer Layer是神经网络的基本单元。每一个Lay
2016-09-23 22:02:24 682
原创 Caffe 源码阅读笔记 [DB] 存储Caffe数据的LevelDB类
概述上一篇文章 描述Caffe如何从DB读取训练集数据。这篇要研究DB的具体实现是什么样子的。Caffe目前支持从LevelDB和lmdb两种key-value store读取和存储数据。我个人认为rocksdb(leveldb的改进版)比lmdb性能会更好。因此我只对Caffe如何使用leveldb感兴趣,lmdb的部分因为时间关系略过。三个基本类Cursor, Transaction, DBCa
2016-09-23 21:17:14 1632
原创 Caffe 源码阅读笔记 [数据读入和处理] DataReader和DataTransformer
概述这一篇主要阅读Caffe如何从数据源读取训练数据和如何对训练数据进行变换。DataReaderDataReader通过LayerParameter获取配置信息。一个训练数据集可以读取到多个GPU(solver)进行训练。为了保证数据分布均匀,每个训练数据集只分配一个线程进行读取,这个线程把数据通过round-robin的方式分发给不同的GPU(solver),每个solver获得的数据是唯一的,
2016-09-23 17:16:11 1190
原创 Caffe 源码阅读笔记 [基本模块] Syncedmem & Blob
syncedmem syncedmem管理一段大小为size的内存。这段内存可以从GPU或者主机内存分配,syncedmem负责GPU和主机内存之间的同步。如果数据是在GPU里而要从主机内存取出,syncedmem会先把数据从GPU内存memcpy到主机内存返回(标记为SYNCED); 相反也是一样。 分配/释放内存的方式 CPU: ptr = malloc(size) / free(pt
2016-09-22 22:46:44 558
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人