当前位置: 首页 > news >正文

邯郸学做网站学校佛山微商网站建设

邯郸学做网站学校,佛山微商网站建设,天津网站设计制作公司,网站开发设计中的收获前言 原始的【caffe-Windows】是没有LSTM层的#xff0c;维护以后的caffe的windows版本也懒得配置了#xff0c;因为大部分文章的代码还是基于老版caffe。其实大部分的添加层方法都可以参考本博客#xff0c;仅限Windows。 需要的文件有#xff1a; 1. 原始的caffe-Wind…前言 原始的【caffe-Windows】是没有LSTM层的维护以后的caffe的windows版本也懒得配置了因为大部分文章的代码还是基于老版caffe。其实大部分的添加层方法都可以参考本博客仅限Windows。 需要的文件有 1. 原始的caffe-Windows这个第一个博客有写网盘地址戳这里或者 caffe-windows官方https://github.com/BVLC/caffe/tree/windows caffe-windows旧网盘链接http://pan.baidu.com/s/1bPZHoi 密码gzc0 2. 具有LSTM对应代码文件的caffe版本此处我们使用caffe的Linux版本 caffe-linux官方https://github.com/BVLC/caffe caffe-linux网盘链接http://pan.baidu.com/s/1eR8W9Lw 密码c7hv 【注】官网新版的caffe编译方法变了但是如果依旧按照VS的配置方法可能和老版的并没有什么区别这里的原始caffe-Windows也可以直接去官网下载。 在进行第一步之前请确保已按照博客配置好了caffe的无GPU版本。且本博客是添加新层而非对caffe添加新工程。下面的参考博客介绍的是一个自定义的层的添加方法主要还是在此基础上研究如何添加LSTM的道理基本一样 参考博客http://blog.csdn.net/u014565333/article/details/54017025 一定一定要注意proto中新添加的ID不要重复否则会出现问题切记切记 第一步 检查一下检查一下Linux中的caffe和Windows中的caffe有什么区别主要核对一下两类文件夹 1. E:\caffe-linux\caffe-master\include\caffe\layers与E:\CaffeDev\caffe-master\include\caffe\layers的对比 2. E:\caffe-linux\caffe-master\src\caffe\layers与E:\CaffeDev\caffe-master\src\caffe\layers的对比 这里我主要发现了windows下的caffe缺少了以下文件 在include文件中缺少lstm_layer.hpp、parameter_layer.hpp、recurrent_layer.hpp、rnn_layer.hpp 在src文件中缺少lstm_layer.cpp、lstm_unit_layer.cpp、parameter_layer.cpp、recurrent_layer.cpp、rnn_layer.cpp 可以先把这些文件全部都拷贝到caffe-windows的对应位置即1和2分别的layers文件夹内部 每一层的意义Google或者在caffe的官网的namespace目录都有介绍。 第二步 2.1 添加parameter_layer层 此层作用add parameter layer for learning any bottom 1先添加头文件libcaffe-include-layers-添加-现有项 添加第一步拷贝到E:\CaffeDev\caffe-master\include\caffe\layers中的parameter_layer.hpp 2再添加提供实现的源文件libcaffe-src-layers-添加-现有项 添加第一步拷贝到E:\CaffeDev\caffe-master\src\caffe\layers中的parameter_layer.cpp 3尝试编译一下cpp 会出现类似这样的错误 主要原因就在于我们常听到的prototxt的用户接口它与第三方包protobuf有关简单的说这个工具就是一个序列化和反序列化工具具体可以搜索这两个词。在caffe中这个接口一般需要在E:\CaffeDev\caffe-master\src\caffe\proto\caffe.proto中声明名称与每一个实现的cpp的末尾所注册的名字相同 ★★★★此处为自己实现cpp所需要注意的一个细节一定要添加注册★★★★ INSTANTIATE_CLASS(ParameterLayer); REGISTER_LAYER_CLASS(Parameter);知道了错误原因那么就在caffe.proto中添加对应的描述。 说一下题外话因为我还没尝试自己写层添加所以调试的时候参考的就是Linux下的caffe.proto的写法MATLAB中有一个对比工具叫做 “比较”比如我在学习如何加层的时候就是这样折腾的 闲话不多说继续添加caffe.proto对应的东西 在382行下面添加一个ID注意此ID与内部的其它ID不能重复 optional ParameterParameter parameter_param 145; 【注】这里的行可以随便选定但是一定要注意在message LayerParameter 的内部与后面的两个message V1LayerParameter 、message V0LayerParameter 区分开来听说后两个部分已经弃用了。以后凡是见到下面这句话 this-layer_param_.parameter_param(). ★★ ★★ 它后面所指向的参数也需要在caffe.proto中指定出来此为caffe自定义层的第二个注意事项 ★★ ★★ 指定的方法是将下面这句话添加到caffe.proto的第873行以后 message ParameterParameter {optional BlobShape shape 1; }4接下来的是一个是容易忽视的细节当ID和参数都添加到caffe.proto以后需要对libcaffe重新生成一次而非直接对着cpp右键编译。可能这一步与E:\CaffeDev\caffe-master\windows\scripts下的ProtoCompile.cmd有关 如果弹出一个窗口XXX已在外部改动什么的点击全是就好。 最后重新右键编译一次parameter_layer.cpp就会无错误直接通过。 2.2添加LSTM层 1添加头文件lstm_layer.hpp、recurrent_layer.hpp、rnn_layer.hpp到libcaffe-include-layers-添加-现有项 2添加源文件lstm_layer.cpp、lstm_unit_layer.cpp、recurrent_layer.cpp、rnn_layer.cpp到libcaffe-src-layers-添加-现有项 观察注册部分 lstm_layer层的注册 INSTANTIATE_CLASS(LSTMLayer); REGISTER_LAYER_CLASS(LSTM);lstm_unit_layer层的注册 INSTANTIATE_CLASS(LSTMUnitLayer); REGISTER_LAYER_CLASS(LSTMUnit);rnn_layer层的注册 INSTANTIATE_CLASS(RNNLayer); REGISTER_LAYER_CLASS(RNN);注意一下这几层的结构区别 此两图显示了caffe的每一层即caffe::layer的组成情况可以发现LSTMUnitLayer是单独成一层的。 3编译尝试一下。 发现lstm_unit_layer.cpp无需添加到caffe.proto中便可直接编译成功但是其使用方法还有待斟酌因为没有添加到caffe.proto中那么使用是如何序列化的呢以后学习。 先解决当下问题其它的层都无法直接编译成功那么就得添加到caffe.proto中了。 在caffe.proto的387行添加对应recurrent层的ID因为它是由LSTM和RNN层组成的因而给一个ID即可在参数中进行区分 optional RecurrentParameter recurrent_param 146; 4添加对应参数描述 // Message that stores parameters used by RecurrentLayer message RecurrentParameter {// The dimension of the output (and usually hidden state) representation --// must be explicitly set to non-zero.optional uint32 num_output 1 [default 0];optional FillerParameter weight_filler 2; // The filler for the weightoptional FillerParameter bias_filler 3; // The filler for the bias// Whether to enable displaying debug_info in the unrolled recurrent net.optional bool debug_info 4 [default false];// Whether to add as additional inputs (bottoms) the initial hidden state// blobs, and add as additional outputs (tops) the final timestep hidden state// blobs. The number of additional bottom/top blobs required depends on the// recurrent architecture -- e.g., 1 for RNNs, 2 for LSTMs.optional bool expose_hidden 5 [default false]; }最后一行注释解释了RNN和LSTM的代号。具体使用方法后续学习到了再写入博客。 5添加完毕ID和参数描述不要忽略了对libcaffe重新生成一次然后尝试对lstm_layer.cpp、recurrent_layer.cpp、rnn_layer.cpp重新编译试试。 第三步 关于如何搭建一个LSTM网络本文就不介绍了在下面这个博客中有三个实例有兴趣可以配置一下试试 CaffeLSTM层分析http://blog.csdn.net/mounty_fsc/article/details/53114698 当然在后面的博客还是需要继续探索LSTM的使用的下一篇博客将介绍如何配置caffe-recurrent训练coco数据集。 【注】一定要细心做每一步因为每一步都可能导致各种错误不然这个十分钟不到就能配置好的东东怎么会折腾我一天呢。如果需要自己手写层添加方法与本文一样但是一定要注意先分析自带的代码比如parameter_layer.h和其实现就很简单关键在于写法结构。 最后细节决定成败耐心成就未来
http://www.pierceye.com/news/462314/

相关文章:

  • 免费电子商务网站建设个人网站心得
  • 2003 iis网站发布网站c2g的代表性电商平台
  • 用asp做网站的可行性分析哪个网站做美食视频
  • 瓷砖网站模板建设网站虚拟主机
  • 陇西哪里能学做网站百度识图网页版在线使用
  • 如果自己弄网站书签制作 小学生 一等奖
  • 连江网站建设wordpress页面文章列表
  • 国外jquery特效网站网站建设的英语
  • 建立网站最好的模板夜蝶直播app下载安装
  • 重庆学校网站建设wordpress 模版安装
  • 公司要招个做网站的人商标设计网站猪八戒
  • 古建设工程造价管理协会网站小程序引流推广平台
  • 网站域名缴费十年外贸建设企业网站服务
  • 游戏网站外链建设网站开发项目的需求分析
  • 确定网站的主题与风格东营市建设项目工伤保险是哪个网站
  • 如何做一张网站平面效果图装宽带需要多少钱
  • 什么网站能让小孩做算术题厦门住房和城乡建设局网站
  • 网站上线过程建设网站什么费用
  • 企业网站域名在哪申请成都广告公司
  • 手机页面网站模板怎么卖宁波网站建设优化找哪家
  • 深圳网站外包公司注册公司流程和费用找哪家
  • 专业新站整站快速排名公司商业网站和企业网站的区别
  • 网站做等保备案河北建设厅网站登陆怎么找附件
  • 网站前台显示数据库指定分类怎么做php优化大师官方免费
  • 用ps软件做ppt模板下载网站c2c网站开发策划
  • 标志空间 网站tk域名网站多少
  • dedecms网站地图插件永康公司网站开发
  • 比较网站建设有没有学做ppt发网站或论坛
  • 用asp做网站流程做科研找论文的网站
  • 新浪网站怎么做推广广告网站模板下载不了