caffe小问题汇总(持续更新)
PS:所有问题均在caffe-windows下产生
1、为什么AlexNet中,InnerProduct_Layer(fc8)层的输出可以直接作为Accuracy_Layer层的输出?
答:首先,我们要搞清楚,全连接层的输出是什么。全连接层的操作其实也是卷积操作,只不过要求卷积核的尺寸与输入进来的FeatureMap相同,因此全连接层输出的向量大小为1*1。
其次,为什么全连接层输出可以作为accuracy。因为该输出表示输入的样本属于某一类的可能性的大小,但并不是概率,所以如果仅仅是做预测,全连接层的输出就够了。
2、caffe源码中,各layer的forward_gpu()和backward_gpu()实现在哪里?对应的*_layer.cpp中只有*_cpu的实现。
答:在*.cu文件中,具体位置在.\caffe\caffe-windows\src\caffe\layers\。具体区别是:cuda的程序就放到cu中,其他的都可以放到c中
其实都可以直接写到cu中,nvcc的编译器会自动把host段的代码放到c的编译器编译。(我自己也不是很懂,是从网上招来的答案)
3、InnerProduct_Layer输出的featuremap大小是多少?
答:在全连接层,其实进行的也是卷积的操作。只不过卷积核的尺寸等于输入的FeatureMap的尺寸。因此全连接层的输出大小为1*1。
4、卷积层的卷积操作是如何实现的?
答:见http://blog.csdn.net/mounty_fsc/article/details/51290446,该文作者给出了详细的解释。
5、为什么用python进行“import caffe”时,会出现“No Module Named Caffe”错误?
答:原因是因为caffe文件中的pycaffe未编译。解决方法:(1)修改$\caffe\caffe-windows\windows下的CommonSettings.props文件,如下图:
;
将13行false改为true,将PythonDir改为当前Anaconda2所在位置。
(2)编译pycaffe成功后,将build/x64/Release/pycaffe/caffe文件夹拷贝到c:\Anaconda2\Lib\site-packages即可。
6、在python中使用均值文件,为什么mean.binaryproto文件不可用?
答:在python环境中使用均值文件,需要将mean.binaryproto文件转为为mean.npy文件。
7.如何计算当前卷积层的参数数目?
答:假设当前层的输出数目为N,卷积层的大小为K*K,输入进来的特征图为M*S*S,其中M为输入的特征图的个数,S*S为特征图的大小。
那么当前卷积层的参数数目为M*K*K*N。
8.用训练好的caffemodel来finetune已知的网络时,出现“check failed:error==cudaSuccess<2 vs. 0> out of memory”错误,该怎么解决?
答:原因是数据本身的batch_size设置过大,导致所需的GPU显存过大,而本身的GPU无法满足导致的。解决办法是:降低训练和测试所需的batch_size即可。
举例:我设置的batch_size=256时,所需的显存为:3901009924,此时出现错误;当我重置batch_size=128时,所需显存为:1950504964,此时可以顺利进行训练。
注:caffe的batch_size,表明一次iteration(迭代)有多少张图片,越大则耗费的显存越多,所以适当降低batch_size即可。
caffe小问题汇总(持续更新)的更多相关文章
- jquery小技巧汇总 持续更新中
1.jquery高亮当前选中菜单 $("document").ready(function(){ $(".menu li").click(function(){ ...
- Salesforce 开发整理(九) 开发中使用的一些小技巧汇总[持续更新]
1.查询一个对象下所有字段 当需要查询一个对象所有字段进行复制或其他操作,可以使用一段拼接的语句来查询 String query = 'select '; for(String fieldApi : ...
- redis日常使用汇总--持续更新
redis日常使用汇总--持续更新 工作中有较多用到redis的场景,尤其是触及性能优化的方面,传统的缓存策略在处理持久化和多服务间数据共享的问题总是不尽人意,此时引入redis,但redis是单线程 ...
- 《WCF技术剖析》博文系列汇总[持续更新中]
原文:<WCF技术剖析>博文系列汇总[持续更新中] 近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析(卷1)>的写作,一直无暇管理自己的Blog.在<WCF技术剖 ...
- 中国.NET:各地微软技术俱乐部汇总(持续更新中...)
中国.NET:各地微软技术俱乐部汇总(持续更新中...) 本文是转载文,源地址: https://www.cnblogs.com/panchun/p/JLBList.html by 史记微软. ...
- 跟我学SpringCloud | 终篇:文章汇总(持续更新)
SpringCloud系列教程 | 终篇:文章汇总(持续更新) 我为什么这些文章?一是巩固自己的知识,二是希望有更加开放和与人分享的心态,三是接受各位大神的批评指教,有任何问题可以联系我: inwsy ...
- 优步UBER司机全国各地最新奖励政策汇总(持续更新...)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://didi-uber.com/archiv ...
- C#、Java中的一些小知识点总结(持续更新......)
前言:在项目中,有时候一些小的知识,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小知识点,以备用,并持续更新...... 1.禁用DataGridV ...
- 痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手 ...
- IT书籍下载汇总--持续更新
本书单由北北分享,并持续更新,请将该地址加入收藏夹:北北的书单 .badge{float:right;}.list-group-item > .badge + .badge{margin-rig ...
随机推荐
- Yasm 1.3.0 Release Notes
Yasm 1.3.0 Release Notes http://yasm.tortall.net/releases/Release1.3.0.html Target Audience Welcome ...
- POJ 3083:Children of the Candy Corn(DFS+BFS)
Children of the Candy Corn Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9311 Accepted: ...
- 微信小程序 - 滑动显示地点信息(map)
演示效果如下: 资源如下 marker,png index.wxml <view class="map-container"> <map id="map ...
- Django——QuerySets酷毙了!
Django的QuerySets酷毙了! 在本文中我将解释一下QuerySets是什么,它是如何工作的(如果你对它已经熟悉了,你可以直接跳到第二部分),我认为如果可以的话你应该总是返回QuerySet ...
- asp.net 表单数据提交,常见方式与错误总结
在ASP中,我们通常把表单提交到另外一个页面(接受数据页面).但是在ASP.NET中,服务端表单通常都是提交到本页面的,如果我设置 form1.action="test.aspx" ...
- IP报文格式及各字段意义
IP数据包由报头和数据两部分组成.报头的前一部分是固定长度,共20字节.在报头的固定部分的后面是可选部分——IP选项和填充域. 首部各字段的含义如下 1.版本 占4位,指IP协议的版本. 2 ...
- Atitit.数据库表的物理存储结构原理与架构设计与实践
Atitit.数据库表的物理存储结构原理与架构设计与实践 1. Oracle和DB2数据库的存储模型如图: 1 1.1. 2. 表数据在块中的存储以及RowId信息3 2. 数据表的物理存储结构 自然 ...
- vue 过渡的-css-类名
会有6个css类名在leave/enter过渡中切换 1,v-enter:定义进入过渡的开始状态,在元素被插入时生效,在下一帧中移除 2,v-enter-active:定义过渡的状态.在元素整个过渡过 ...
- SQL中使用视图的优点和缺点是什么
视图的优点与缺点 在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,视图具有如下的一些优点: ● 简单性.视图不仅可以简化用户对数据的理解,也可以简化他们的操作.那些被经常使用的查询可以被定义 ...
- Unity3D 移动开发代码优化
1. 尽量避免每帧处理 比方: function Update() { DoSomeThing(); } 可改为每5帧处理一次: function Update() { if(Time.frameCo ...