caffe
1// This is a script to upgrade "V0" network prototxts to the new format.
2// Usage:
3// upgrade_net_proto_text v0_net_proto_file_in net_proto_file_out
4
5#include <cstring>6#include <fstream> // NOLINT(readability/streams)7#include <iostream> // NOLINT(readability/streams)8#include <string>9
10#include "caffe/caffe.hpp"11#include "caffe/util/io.hpp"12#include "caffe/util/upgrade_proto.hpp"13
14using std::ofstream;15
16using namespace caffe; // NOLINT(build/namespaces)17
18int main(int argc, char** argv) {19FLAGS_alsologtostderr = 1; // Print output to stderr (while still logging)20::google::InitGoogleLogging(argv[0]);21if (argc != 3) {22LOG(ERROR) << "Usage: "23<< "upgrade_net_proto_text v0_net_proto_file_in net_proto_file_out";24return 1;25}26
27NetParameter net_param;28string input_filename(argv[1]);29if (!ReadProtoFromTextFile(input_filename, &net_param)) {30LOG(ERROR) << "Failed to parse input text file as NetParameter: "31<< input_filename;32return 2;33}34bool need_upgrade = NetNeedsUpgrade(net_param);35bool success = true;36if (need_upgrade) {37success = UpgradeNetAsNeeded(input_filename, &net_param);38if (!success) {39LOG(ERROR) << "Encountered error(s) while upgrading prototxt; "40<< "see details above.";41}42} else {43LOG(ERROR) << "File already in latest proto format: " << input_filename;44}45
46// Save new format prototxt.47WriteProtoToTextFile(net_param, argv[2]);48
49LOG(INFO) << "Wrote upgraded NetParameter text proto to " << argv[2];50return !success;51}
52