2015-09-10 35 views
0

我想使用Caffe提取图像特征。但是,处理图像需要很长时间,所以我正在寻找优化速度的方法。减少Caffe网络模型

我注意到的一件事是,我使用的网络定义有四个额外的层,我从中读取结果(并且没有反馈信号,因此它们应该安全删除)。

我试图从定义文件中删除它们,但它根本没有任何效果。我想我可能需要删除包含预先训练权重的文件的相应部分。不过,编辑它的二进制文件(protobuffer)并不那么容易。

您是否认为移除这四层可能会对网络性能产生深远影响?

如果是这样,那么我如何熟悉文件内容以便我可以编辑它,以及如何知道要删除哪些部分?

回答

2

首先,我不认为去除二进制权重会有任何影响。
其次,您可以使用python界面轻松完成:请参阅this tutorial
最后但并非最不重要,您是否尝试过运行caffe time来衡量您的网络性能?这可以帮助您识别计算的瓶颈。

PS, 您可能也会发现this thread也是相关的。

0

Caffemodel将数据存储为键值对。 Caffe只复制与caffemodel名称完全相同的图层(在train.prototxt中)。因此我不认为去除二进制权重是可行的。如果您想更改网络结构,只需修改train.prototxt和deploy.txt。

如果您坚持从二进制文件中移除权重,请按照此caffe example

为了确保你删除了正确的部分,这个visualizing tool应该有所帮助。