Caffe C ++保存网络caffemodel文件

时间:2016-03-27 23:40:23

标签: c++ deep-learning caffe

我已经成功构建并培训了一个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

有什么想法吗?

2 个答案:

答案 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();
    }