cxxnet学习笔记4
来源:互联网 发布:定时器软件 编辑:程序博客网 时间:2024/06/03 18:06
cxxnet—nnet模块学习笔记
nnet模块抽象的表示了神经网络结构,它结合layer模块共同构筑了神经网络。
该模块包含的源码文件如下所示:
neural_net-inl.hpp
nnet.h
nnet_config.h
nnet_impl-inl.hpp
nnet_impl.cpp
nnet_impl.cu
nnet_ps_server.cpp
在nnet模块中,依赖关系如下所示:
CXXNetThreadTrainer->NeuralNetThread->NeuralNet
nnet.h是其接口,其他.hpp文件实现了其接口,.cpp文件使用了.hpp文件实现的接口。
在nnet.h中,定义了类INetTrainer,它是trainer网络的接口,还定义了一个带模版的创建函数,用来根据所选择设备,网络类型不同,创建所需trainer网络。
nnet_config.h实现网络结构配置功能,它定义了一个结构体NetConfig,它记录了神经网络的配置,用以存储网络结构,并可以读取该配置,它和每个层相关联。
nerual_net-inl.hpp单元实现了常用神经网络,它定义了一个带模版的结构体NerualNet,实现了抽象神经网络,它还定义了一个模版类NerualNetThread,表达了神经网络的独立线程结构。模版提供的类型有CPU和GPU可供选择。
nnet_impl-inl.hpp单元定义了一个类CXXNetThreadTrainer,它继承了INetTrainer,该类使用多线程实现了神经网络训练器,它同样包括一个模版,类型可选CPU或GPU。此外,它还定义了一个CXXNetThreadTrainer创建函数,可根据不同net_type和设备创建所需CXXNetThreadTrainer,nnet_impl.cpp文件唯一的函数Create也指向这里。
nnet_ps_sever.cpp单元涉及cxxnet和mshadow两个部分,其一是nnet下的CXXNetUpdater类实现,它继承于mshadow::ps::IModelUpdater<reanl_t>,还有一部分是mshadow下ps内 IModelUpdater<cxxnet::real_t>类型的CreateModelUpdater函数返回CXXNetUpdater类。
CXXNetUdater用于上传参数到参数服务器。
nnet_impl.cu是nnet_impl.cpp的GPU版本。
该模块主要用于构建神经网络,在下一步理解其内部逻辑关系以及网络构建流程才是关键。
- cxxnet学习笔记4
- cxxnet学习笔记1
- cxxnet学习笔记2
- cxxnet学习笔记3
- cxxnet学习笔记5
- cxxnet学习笔记6
- cxxnet学习笔记7
- cxxnet学习笔记78
- cxxnet学习笔记9
- 分布式机器学习框架:CXXNet
- CXXNET 安装教程
- linux下面安装cxxnet.
- Deep Learning Framework CXXNET Compilation
- cxxnet中multi-machine例子编译流程
- Windows8.1(64位)下用vs2013编译cxxnet
- C++学习笔记(4)
- AD学习笔记4
- oracel学习笔记4
- iOS画图中 图形上下文的管理
- Java JAX-WS和JAX-RS webservice的区别和特点
- OpenMP简介
- bluetooth 术语
- 一道简单的python题--Triangle Quest
- cxxnet学习笔记4
- Java面向对象 继承类的一些特殊写法
- Default Image size with Assets Catalog for Xcode 6
- 消息推送(一)
- Linux学习笔记--共享文件夹
- 嵌入式Linux开发教程:初始Ubuntu
- Context
- python 单实例一个类
- POJ 3468 A Simple Problem with Integers(线段树成段更新)