1 // This is a script to upgrade old solver prototxts to the new format.
3 // upgrade_solver_proto_text old_solver_proto_file_in solver_proto_file_out
6 #include <fstream> // NOLINT(readability/streams)
7 #include <iostream> // NOLINT(readability/streams)
10 #include "caffe/caffe.hpp"
11 #include "caffe/util/io.hpp"
12 #include "caffe/util/upgrade_proto.hpp"
16 using namespace caffe; // NOLINT(build/namespaces)
18 int main(int argc, char** argv) {
19 FLAGS_alsologtostderr = 1; // Print output to stderr (while still logging)
20 ::google::InitGoogleLogging(argv[0]);
22 LOG(ERROR) << "Usage: upgrade_solver_proto_text "
23 << "old_solver_proto_file_in solver_proto_file_out";
27 SolverParameter solver_param;
28 string input_filename(argv[1]);
29 if (!ReadProtoFromTextFile(input_filename, &solver_param)) {
30 LOG(ERROR) << "Failed to parse input text file as SolverParameter: "
34 bool need_upgrade = SolverNeedsTypeUpgrade(solver_param);
37 success = UpgradeSolverAsNeeded(input_filename, &solver_param);
39 LOG(ERROR) << "Encountered error(s) while upgrading prototxt; "
40 << "see details above.";
43 LOG(ERROR) << "File already in latest proto format: " << input_filename;
46 // Save new format prototxt.
47 WriteProtoToTextFile(solver_param, argv[2]);
49 LOG(INFO) << "Wrote upgraded SolverParameter text proto to " << argv[2];