<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[acmwwy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/acmwwy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; acmwwy]]></copyright><item><title><![CDATA[Caffe 实践 在数据集MNIST上使用LeNet]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52731902</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52731902</guid><author>acmwwy</author><pubDate>Tue, 04 Oct 2016 05:37:57 +0800</pubDate><description><![CDATA[概述

安装好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]]></description><category></category></item><item><title><![CDATA[深度学习论文笔记 [图像处理] Deep Residual Learning for Image Recognition]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52705401</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52705401</guid><author>acmwwy</author><pubDate>Thu, 29 Sep 2016 22:00:45 +0800</pubDate><description><![CDATA[概要证明了残差网络更容易训练，而且网络更深的时候能够取得更高的准确率。在ImageNet数据集上我们使用152层的残差网络并取得了3.57%的错误率。简介深度网络一直存在梯度消散的问题，但最近这个问题已经被normalized initialization和batch normalization很大程度的解决了。另一个问题是网络效果变差，当网络深度增加的时候，准确率反而比层数低的网络要差，但它并不是]]></description><category></category></item><item><title><![CDATA[Caffe 实践 在macOS (版本号10.11) 上安装Caffe]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52704350</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52704350</guid><author>acmwwy</author><pubDate>Thu, 29 Sep 2016 18:53:32 +0800</pubDate><description><![CDATA[安装指南

主要是按照Caffe官方指南安装的，但遇到各种各样的问题。下面把我安装时遇到的问题和教训列出来，做个记录


无法用brew install 安装snappy和leveldb。后来发现是因为我更新了MacOS的版本，homebrew原有的版本就失效了，原本brew update能够更新到最新的版本，但那个也失效了，于是我只能卸载掉homebrew重新安装它。结果就成功安装snappy和]]></description><category></category></item><item><title><![CDATA[Caffe 源码阅读笔记 [基本模块] Caffe.cpp]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52694520</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52694520</guid><author>acmwwy</author><pubDate>Wed, 28 Sep 2016 22:18:54 +0800</pubDate><description><![CDATA[概述

到目前为止，我们已经把所有Caffe的基本模块从最基本的SyncedMemory到最上层的Solver都过了一遍。那么Caffe最后是怎么把他们串在一起的呢？这一篇主要讲解Caffe从main函数开始是怎么完成整个训练过程的

Caffe支持的命令


train: 训练或者调整一个模型
test : 在测试集上测试一个模型
device_query : 打印GPU的调试信息
time:]]></description><category></category></item><item><title><![CDATA[Caffe 源码阅读笔记 [基本模块] Solver]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52685050</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52685050</guid><author>acmwwy</author><pubDate>Tue, 27 Sep 2016 21:48:49 +0800</pubDate><description><![CDATA[概述

前面介绍了网络Net模块来描述一个神经网络，Solver则是一个计算模块对网络进行参数的优化。跟Layer一样，Caffe把Solver实现成一个接口，使得开发者可以开发自己的Solver。

Solver成员变量



  SolverParameter param_; // Solver参数
  int iter_; // 第几次迭代
  int current_step_; //]]></description><category></category></item><item><title><![CDATA[Caffe 源码阅读笔记 [基本模块] 网络Net]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52654026</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52654026</guid><author>acmwwy</author><pubDate>Sat, 24 Sep 2016 22:18:49 +0800</pubDate><description><![CDATA[概述

前面讲了Layer，Net就是把Layer串起来的神经网络。本篇主要讨论在神经网络中如何进行Layer之间的管理和计算



Net成员变量



  // Net相关变量
  string name_; // 网络名字
  Phase phase_; // TRAIN 或者 TEST
  // 网络的输入和输出Blobs以及在blobs_中对应的索引
  vector*> net_inp]]></description><category></category></item><item><title><![CDATA[Caffe 源码阅读笔记 [基本模块] Layer和LayerFactory]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52644019</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52644019</guid><author>acmwwy</author><pubDate>Fri, 23 Sep 2016 22:02:24 +0800</pubDate><description><![CDATA[概述

因为前两篇讲的是数据的读取，本来是打算阅读DataLayer这一块的，但考虑到DataLayer是Layer的子类，因此从Caffe的另一个重要模块Layer开始看起感觉更自然。毕竟Caffe里面最多的代码都是各种各样的Layer，整个Caffe的神经网络都是一个个Layer串起来的，DataLayer只是网络的第一层而已。



Layer

Layer是神经网络的基本单元。每一个Lay]]></description><category></category></item><item><title><![CDATA[Caffe 源码阅读笔记 [DB] 存储Caffe数据的LevelDB类]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52643387</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52643387</guid><author>acmwwy</author><pubDate>Fri, 23 Sep 2016 21:17:14 +0800</pubDate><description><![CDATA[概述上一篇文章 描述Caffe如何从DB读取训练集数据。这篇要研究DB的具体实现是什么样子的。Caffe目前支持从LevelDB和lmdb两种key-value store读取和存储数据。我个人认为rocksdb(leveldb的改进版）比lmdb性能会更好。因此我只对Caffe如何使用leveldb感兴趣，lmdb的部分因为时间关系略过。三个基本类Cursor, Transaction, DBCa]]></description><category></category></item><item><title><![CDATA[Caffe 源码阅读笔记 [数据读入和处理] DataReader和DataTransformer]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52640458</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52640458</guid><author>acmwwy</author><pubDate>Fri, 23 Sep 2016 17:16:11 +0800</pubDate><description><![CDATA[概述这一篇主要阅读Caffe如何从数据源读取训练数据和如何对训练数据进行变换。DataReaderDataReader通过LayerParameter获取配置信息。一个训练数据集可以读取到多个GPU(solver)进行训练。为了保证数据分布均匀，每个训练数据集只分配一个线程进行读取，这个线程把数据通过round-robin的方式分发给不同的GPU(solver)，每个solver获得的数据是唯一的，]]></description><category></category></item><item><title><![CDATA[Caffe 源码阅读笔记 [基本模块] Syncedmem & Blob]]></title><link>https://blog.youkuaiyun.com/acmwwy/article/details/52629004</link><guid>https://blog.youkuaiyun.com/acmwwy/article/details/52629004</guid><author>acmwwy</author><pubDate>Thu, 22 Sep 2016 22:46:44 +0800</pubDate><description><![CDATA[syncedmem


syncedmem管理一段大小为size的内存。这段内存可以从GPU或者主机内存分配，syncedmem负责GPU和主机内存之间的同步。如果数据是在GPU里而要从主机内存取出，syncedmem会先把数据从GPU内存memcpy到主机内存返回（标记为SYNCED); 相反也是一样。
分配/释放内存的方式  
CPU: ptr = malloc(size) / free(pt]]></description><category></category></item></channel></rss>