我已经成功构建并培训了一个audioCaffe演示,但该演示并未保存网络。
我在MatLab中找到了用Python保存网络的文档,但我找不到任何关于C ++的文档。
我认为会有像net.save("file.caffemodel")
这样的类似功能,但我尝试了它并且它不起作用。
在caffe.cpp
的火车功能中,我尝试了这个:
if (FLAGS_snapshot.size()) {
LOG(INFO) << "Resuming from " << FLAGS_snapshot;
solver.Solve(FLAGS_snapshot);
} else if (FLAGS_weights.size()) {
LOG(INFO) << "Finetuning from " << FLAGS_weights;
solver.net()->CopyTrainedLayersFrom(FLAGS_weights);
solver.Solve();
} else {
solver.Solve();
}
solver.save("file.caffemodel")
但我得到了no method exists error
有什么想法吗?
答案 0 :(得分:3)
请试试这个......
caffe::NetParameter net_param;
net_->ToProto(&net_param);
caffe::WriteProtoToBinaryFile(net_param, caffe_model_path);
答案 1 :(得分:0)
您应该查看Snapshot()
和SnapshotToBinaryProto()
- src / caffe / solver.cpp。
来电者代码在Solver :: Step:
// Save a snapshot if needed.
if ((param_.snapshot()
&& iter_ % param_.snapshot() == 0
&& Caffe::root_solver()) ||
(request == SolverAction::SNAPSHOT)) {
Snapshot();
}