我使用折叠代码加载和设置网络,层的参数存储在deploy.prototxt中。
net = caffe.Net(deploy.prototxt, caffemodel, caffe.TEST)
然而,我想要做的是修改参数(例如kernel_size或pad等)。而不是修改prototxt文件并重新加载它。有没有办法这样做?
发布于 2017-04-06 20:36:11
您可以编写自己的get/set方法并将它们公开给python。在layer.hpp中:
virtual float GetParameter(const std::string param_name) {return -1;}
virtual void SetParameter(const std::string param_name, float val) {}然后在希望动态获取/设置参数的层中重新定义这些方法。
最后一步是向python公开这些方法。在_caffe.cpp中为bp::class_<Layer...添加以下内容
.def("get_parameter", &Layer<Dtype>::GetParameter)
.def("set_parameter", &Layer<Dtype>::SetParameter)https://stackoverflow.com/questions/40858548
复制相似问题