首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Caffe CNN转换为Extractor

将Caffe CNN转换为Extractor
EN

Stack Overflow用户
提问于 2018-03-20 06:50:15
回答 1查看 104关注 0票数 1

我必须使用CNN模型从图像中提取特征。我用的是一个受过训练的模特叫Caffenet。

在Caffe上,在通过CNN模型运行图像后,很容易提取特征。例如,如果我想要从"conv5“层提取特性,我只需调用该方法:

代码语言:javascript
复制
features = net.blobs['conv5'].data[0, : , : , :]

然而,棘手的部分是,我需要使用第三方转换工具,以转换模型,以便它可以运行在我的移动设备。在转换模型之后,我无法访问模型内各层的输出。我只得到最后的输出,在本例中是分类,它们不是我所需要的。

为了直接从"conv5“层(最终的卷积层)获得模型的输出特性,我在deploy.prototxt文件中删除了"conv5”层之后的所有层,因此"conv5“有效地成为了最终的输出层。但是,这样做之后,我得到的特性值与更改prototxt文件之前获得的特性值完全不同。

我怀疑,即使我通过删除deploy.prototxt中的层来改变体系结构,我也不能更改caffenet.caffemodel文件中的权重。我不知道为什么这会是一个问题,因为在"conv5“之后的层的权重将不会被使用。我不知道为什么这会改变"conv5“的输出。

我怎样才能改变一个经过训练的模型,直接从最终的卷积层输出特征?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-23 01:47:27

原因之一可能是" conv5“层之后的某些层将更新或更改conv5的顶部块。这些层包括relu层或batch_norm层,因为这些层通常使用就地操作。因此,您最好检查deploy,并在conv5之后保持conv5和relu层不变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49377891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档