【发布时间】:2017-10-14 03:44:32
【问题描述】:
我有一个.prototxt 文件和一个.caffemodel 文件,用于我在py-caffe 中构建和训练的网络,使用自行开发的Python 层。
后来,我为 C++ 版本的 Caffe 实现了相同的层。
问题是是否可以只更改 .prototxt 文件中的层类型(从 Python 到 C++ 的),同时使用相同的已经训练好的 .caffemodel 文件,以便加载和使用训练好的网络,这次是 C++ 层?
【问题讨论】:
-
你的图层有内部参数吗?也就是说,您在
"Python"层实现中是否使用了self.blobs.add_blob()? -
我没有。这是否意味着我可以实现与 Python 相同的 C++ 方法?实际上这是合乎逻辑的,因为该方案是在
.prototxt文件中定义的,而不是在层实现中 -
如果你没有内部参数,那么层对
.caffemodel的加载没有影响,你应该可以将它从python转换为cpp。我想你最好有一个 GPU 实现(.cu实现...) -
如果在
prototxt文件中,我的python 层定义中有python_param子句,会不会有问题? -
在prototxt文件中有layer的参数完全没有问题。查看其他层的 c++ 实现,了解 prtototxt 参数在 c++ 代码中是如何处理的。然后您可以考虑是要为您的网络定义参数还是使用
python_param并从prototxt 中用c++ 读取它。