Caffe C++保存网络咖啡模型文件

Caffe C++ save network caffemodel file

本文关键字:模型 文件 咖啡 网络 C++ 保存 Caffe      更新时间:2023-10-16

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

有什么想法吗?

请尝试这个。。。

caffe::NetParameter net_param;
net_->ToProto(&net_param);
caffe::WriteProtoToBinaryFile(net_param, caffe_model_path);

您应该看看Snapshot()SnapshotToBinaryProto()-src/caffe/solver.cpp。
调用方代码在解算器中::步骤:

// Save a snapshot if needed.
    if ((param_.snapshot()
         && iter_ % param_.snapshot() == 0
         && Caffe::root_solver()) ||
         (request == SolverAction::SNAPSHOT)) {
      Snapshot();
    }