我正在为ios构建caffe框架,我使用Caffe主源并制作文件来构建iOS框架.
我将CMake GUI配置中的操作系统目标更改为"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
在运行Xcode构建项目时,我收到以下错误消息/Users/Macpro_ios_v2/Caffe_iOS/src/caffe/common.cpp:1:10:'glog/logging.h'文件未找到"boost/thread.h"文件没有发现我包括usr/local/include和opt/local/include来搜索构建阶段的路径
为OSX运行相同的xcode项目,它工作正常并完美地生成库.如果我改变了iPhone的目标,我得到了上述错误.
请帮我修一下上面的问题.请帮助如何在Caffe master for iphone中配置制作列表.
我有caffe dylip,lib-a for OSX.是否可以在iOS项目中链接mac osx库?
解析了许多关于在Python中构建Caffe图层的链接后,我仍然难以理解一些概念.有人可以澄清一下吗?
我仍然缺少的是:
setup()方法:我应该在这做什么?为什么在例子中我应该将'底部'参数的长度与'2'进行比较?为什么它应该是2?它似乎不是批量大小,因为它是随意的?据我所知,底部是blob,然后第一个维度是批量大小?reshape()方法:据我所知'底部'输入参数是下层的blob,'top'参数是上层的blob,我需要根据我的计算的输出形状重新形成顶层.但是,如果这些形状不是从传递变为传球,只有重量变化,为什么我需要在每个前进传球中执行此操作?reshape和forward方法有0个索引用于'top'输入param使用.为什么我需要使用top[0].data=...或top[0].input=...代替top.data=...和top.input=...?这个指数怎么样?如果我们不使用此顶级列表的其他部分,为什么以这种方式暴露它?我可以怀疑它或C++骨干的巧合,但确切地知道它会很好.reshape() 方法,符合:
if bottom[0].count != bottom[1].count
Run Code Online (Sandbox Code Playgroud)
我在这做什么 为什么它的尺寸又是2?我在这里算什么?为什么blob(0和1)的两个部分在某些成员(count)的数量上应该相等?
forward() 我用这条线定义的方法:
self.diff[...] = bottom[0].data - bottom[1].data
Run Code Online (Sandbox Code Playgroud)
如果我定义它,在前进路径后使用它?我们可以使用吗?
diff = bottom[0].data - bottom[1].data
Run Code Online (Sandbox Code Playgroud)
相反,在这个方法中稍后计算损失,而不是分配self,或者是为了某种目的而完成的?
backward()方法:这是关于什么的for i in range(2):?为什么范围又是2?
backward()方法,propagate_down参数:为什么定义?我的意思是,如果它的真实,渐变应该分配给bottom[X].diff我所看到的,但是为什么有人会调用什么都不会做的方法propagate_down = False,如果它什么都不做而且还在里面循环? …我使用caffe提取了一些功能,它会生成一个.mdb文件.然后我尝试使用Python读取它并将其显示为可读数字.
import lmdb
lmdb_env = lmdb.open('caffefeat')
lmdb_txn = lmdb_env.begin()
lmdb_cursor = lmdb_txn.cursor()
for key, value in lmdb_cursor:
print str(value)
Run Code Online (Sandbox Code Playgroud)
这会打印出很长的不可读,破碎的字符.
然后我尝试打印int(value),返回以下内容:
ValueError: invalid literal for int() with base 10: '\x08\x80 \x10\x01\x18\x015\x8d\x80\xad?5'
Run Code Online (Sandbox Code Playgroud)
float(value)给出以下内容:
ValueError: could not convert string to float:? 5????5
Run Code Online (Sandbox Code Playgroud)
这是lmdb文件本身的问题,还是与数据类型的转换有关?
我正在通过Caffe原型文本查看深度残留网络,并注意到了"Scale"图层的外观.
layer {
bottom: "res2b_branch2b"
top: "res2b_branch2b"
name: "scale2b_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
}
Run Code Online (Sandbox Code Playgroud)
但是,此图层在Caffe图层目录中不可用.有人可以解释这一层的功能和参数的含义,还是指向Caffe的最新文档?
neural-network deep-learning caffe conv-neural-network resnet
我希望InfogainLoss在我的模型中使用类型的损失层.但我很难正确定义它.
关于INFOGAIN_LOSS图层的使用是否有任何教程/示例?
这个层的输入,类概率,应该是SOFTMAX层的输出,还是足以输入完全连接层的"顶部"?
INFOGAIN_LOSS需要三个输入:类概率,标签和矩阵H.矩阵H可以作为层参数提供infogain_loss_param { source: "fiename" }.
假设我有一个计算一个Python脚本H的numpy.array形状(L,L)与dtype='f4'(其中L是标签在我的模型的数量).
如何将我转换numpy.array为binproto可以作为infogain_loss_param { source }模型提供的文件?
假设我想H作为损失层的第三个输入(底部)提供(而不是作为模型参数).我怎样才能做到这一点?
我是否定义了一个"顶部"的新数据层H?如果是这样,那么每次训练迭代都不会增加该层的数据,就像训练数据增加一样?如何定义多个不相关的输入"数据"层,以及caffe如何知道从批处理批量读取训练/测试"数据"层,而从H"数据"层知道只读一次所有的训练过程?
我正在训练Caffe参考模型来分类图像.我的工作要求我通过在整个训练集和分别具有100K和50K图像的验证集的每1000次迭代之后绘制模型的准确性图来监视训练过程.现在,我采取天真的方法,在每1000次迭代后制作快照,运行C++分类代码,该代码读取原始JPEG图像并转发到网络并输出预测标签.但是,这在我的机器上花费了太多时间(使用Geforce GTX 560 Ti)
有没有更快的方法可以在训练集和验证集上获得快照模型的准确性图表?
我在考虑使用LMDB格式而不是原始图像.但是,我找不到有关使用LMDB格式在C++中进行分类的文档/代码.
我试图运行朱古力上Linux Ubuntu.安装后,我在gpu中运行caffe,错误是
I0910 13:28:13.606891 10629 caffe.cpp:296] Use GPU with device ID 0
modprobe: ERROR: could not insert 'nvidia_352': No such device
F0910 13:28:13.728612 10629 common.cpp:142] Check failed: error == cudaSuccess (38 vs. 0) no CUDA-capable device is detected
*** Check failure stack trace: ***
@ 0x7ffd3b9a7daa (unknown)
@ 0x7ffd3b9a7ce4 (unknown)
@ 0x7ffd3b9a76e6 (unknown)
@ 0x7ffd3b9aa687 (unknown)
@ 0x7ffd3bf91cb5 caffe::Caffe::SetDevice()
@ 0x40a5a7 time()
@ 0x4080f8 main
@ 0x7ffd3aeb9ec5 (unknown)
@ 0x408618 (unknown)
@ (nil) (unknown)
Aborted (core …Run Code Online (Sandbox Code Playgroud) 使用Fast/Faster-RCNN和Caffe在C++上制作对象检测器的最简单方法是什么?
众所周知,我们可以使用跟随RCNN(基于区域的卷积神经网络)和Caffe:
RCNN:https://github.com/BVLC/caffe/blob/be163be0ea5befada208dbf0db29e6fa5811dc86/python/caffe/detector.py#L174
快速RCNN:https://github.com/rbgirshick/fast-rcnn/blob/master/tools/demo.py#L89
scores, boxes = im_detect(net, im, obj_proposals) 哪个叫 def im_detect(net, im, boxes):
使用rbgirshick/caffe-fast-rcnn,ROIPooling-layers和输出bbox_pred
scores, boxes = im_detect(net, im) 哪个叫 def im_detect(net, im, boxes=None):
使用rbgirshick/caffe-fast-rcnn,ROIPooling-layers和输出bbox_pred
所有这些都使用Python和Caffe,但是如何在C++和Caffe上做到这一点?
分类只有C++示例(在图像上说什么),但是没有用于检测(表示图像上的内容和位置):https://github.com/BVLC/caffe/tree/master/examples/cpp_classification
用rbgirshick/caffe-fast-rcnn简单地克隆rbgirshick/py-faster-rcnn存储库
就足够了,下载预先设定的模型,使用这个coco/VGG16/faster_rcnn_end2end/test.prototxt并在CaffeNet C++分类中做了一些小改动例子?./data/scripts/fetch_faster_rcnn_models.sh
如何从两层bbox_pred和cls_score获取输出数据?
我是否将所有(bbox_pred和cls_score)放在一个数组中:
const vector<Blob<float>*>& output_blobs = net_->ForwardPrefilled();
Blob<float>* output_layer = output_blobs[0]; …Run Code Online (Sandbox Code Playgroud) 我正在训练我的方法.我得到的结果如下.这是一个很好的学习率吗?如果没有,是高还是低?这是我的结果
lr_policy: "step"
gamma: 0.1
stepsize: 10000
power: 0.75
# lr for unnormalized softmax
base_lr: 0.001
# high momentum
momentum: 0.99
# no gradient accumulation
iter_size: 1
max_iter: 100000
weight_decay: 0.0005
snapshot: 4000
snapshot_prefix: "snapshot/train"
type:"Adam"
Run Code Online (Sandbox Code Playgroud)
这是参考
学习率低时,改进将是线性的.随着高学习率,他们将开始看起来更具指数性.较高的学习率会更快地减少损失,但是他们会陷入更糟糕的损失值
有谁知道Caffe是否存在一个漂亮的LSTM模块?我在russel91的github帐户中找到了一个,但显然包含示例和解释的网页消失了(以前http://apollo.deepmatter.io/ - >它现在只重定向到github页面,不再有例子或解释).
neural-network deep-learning caffe lstm recurrent-neural-network