首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Caffe 源碼閱讀(四) Layer.hpp Layer.cpp
】的更多相关文章
Caffe 源碼閱讀(五) Solver.cpp
1.Solver类两个构造函数 Solver(const SolverParameter& param) Solver(const string& param_file) 初始化两个类net_和test_net并调用Init()函数 2.Init函数 初始化网络 设置随机数种子 申请一块Net空间,test_net_指向这块空间 输入:SolverParameter 类型 param 3.训练网络 Solve函数 设置caffe mode 设置当前阶段(Train/Test) 调用PreS…
Caffe 源碼閱讀(六) data_layer.cpp
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>…
Caffe 源碼閱讀(四) Layer.hpp Layer.cpp
1.Setup() Layer初始化参数 (1.完成层参数的读入.处理 2.设置底层顶层的shape,在前向传播前完成) InitMutex CheckBolbCounts: LayerSetup:data Layer 参数共享. Reshape:设置Top Blobs和内部buffers的维数 SetLossWeights: 2.…
Caffe 源碼閱讀(一) Blob.hpp
Blob 四維度(N K H W) N : SGD 一次 mini-batch 個數 K : 如果是圖片表示圖片通道數 如果是中間結果 則理解爲 feature map 個數 H.W : 如果是圖片理解爲圖片的高度寬度 如果是feature map理解爲核的寬度及高度 重點包括 個部分: 1.數據成員 2.構造函數 3.Blob數據訪問方法 4.Blob數據持久化函數: Blob中存儲了網絡中間處理結果和網絡的參數,這些數據最終是要被存儲到磁盤或從磁盤讀入內存的,最後來看Blob的數據持久化函數…
Caffe 源碼閱讀(二) SyncedMemory.hpp
1. to_cpu 數據由現存同步到內存 2. to_gpu 數據由內存同步到顯存 3. cpu_str_ 內存指針 4. gpu_str_ 顯存指針 5. size_ 數據大小 6. own_cpu_data_ 是否分配了內存空間 7.head_ 當前數據狀態 cpu_data() 完成數據同步並返回數據指針 cpu_ptr…
Caffe 源碼閱讀(三) caffe.cpp
补:主要函数运行顺序: main>>GetBrewFunction>>train>>Solve 從main函數說起: 1.gflags庫中爲main函數設置usage信息 是google的一個開源的處理命令行的參數的庫.在使用命令行參數的文件夾文件中(源文件或頭文件),首先使用以下定義語句進行變量的定義. DEFINE_int32, DEFINE_int64, DEFINE_bool等, 語法爲:DEFINE_int32(name,default_value,"…
Caffe 源碼閱讀(六) InternalThread
类InternalThread是一个虚类,是Caffe中的多线程接口,其本质是为封装了boost::thread 看源码可以得到以下结论: 1.每个派生类都需要实现一个InternalThreadEntry() 2.thread_的初值为NULL,所以单单继承InternalThread不会产生新的线程 3.但是调用InternalThread::StartInternalThread()函数,则会执行以下代码,重置thread_,该线程绑定的函数是InternalThread::entry()…
caffe源码学习
本文转载自:https://buptldy.github.io/2016/10/09/2016-10-09-Caffe_Code/ Caffe简介 Caffe作为一个优秀的深度学习框架网上已经有很多内容介绍了,这里就不在多说.作为一个C++新手,断断续续看Caffe源码一个月以来发现越看不懂的东西越多,因此在博客里记录和分享一下学习的过程.其中我把自己看源码的一些注释结合了网上一些同学的注释以及在学习源码过程中查到到的一些资源(包括怎么使用IDE单步调试以及一些Caffe中使用的第三方库的介绍)…
Caffe源码-Layer类
Layer类简介 Layer是caffe中搭建网络的基本单元,caffe代码中包含大量Layer基类派生出来的各种各样的层,各自通过虚函数 Forward() 和 Backward() 实现自己的功能. Forward() 函数用于前向计算过程,由 bottom blob 计算 top blob 和 loss ,实现数据由浅至深的传递.而 Backward() 函数用于反向传播过程,由 top blob 的计算 bottom blob 的梯度,将网络的预测误差向浅层网络传递,以便更新网络的参数.…
caffe源码学习之Proto数据格式【1】
前言: 由于业务需要,接触caffe已经有接近半年,一直忙着阅读各种论文,重现大大小小的模型. 期间也总结过一些caffe源码学习笔记,断断续续,这次打算系统的记录一下caffe源码学习笔记,巩固一下C++,同时也梳理一下自己之前的理解. 正文: 我们先不看caffe的框架结构,先介绍一下caffe.proto,是google开源的一种数据交互格式--Google Protobuf,这种数据的格式,我们可以看到caffe.proto中内容: syntax = "proto2"; pac…