| |
| |
| |
|
|
| #include <cstring> |
| #include <fstream> |
| #include <iostream> |
| #include <string> |
|
|
| #include "caffe/caffe.hpp" |
| #include "caffe/util/io.hpp" |
| #include "caffe/util/upgrade_proto.hpp" |
|
|
| using std::ofstream; |
|
|
| using namespace caffe; |
|
|
| int main(int argc, char** argv) { |
| FLAGS_alsologtostderr = 1; |
| ::google::InitGoogleLogging(argv[0]); |
| if (argc != 3) { |
| LOG(ERROR) << "Usage: " |
| << "upgrade_net_proto_text v0_net_proto_file_in net_proto_file_out"; |
| return 1; |
| } |
|
|
| NetParameter net_param; |
| string input_filename(argv[1]); |
| if (!ReadProtoFromTextFile(input_filename, &net_param)) { |
| LOG(ERROR) << "Failed to parse input text file as NetParameter: " |
| << input_filename; |
| return 2; |
| } |
| bool need_upgrade = NetNeedsUpgrade(net_param); |
| bool success = true; |
| if (need_upgrade) { |
| success = UpgradeNetAsNeeded(input_filename, &net_param); |
| if (!success) { |
| LOG(ERROR) << "Encountered error(s) while upgrading prototxt; " |
| << "see details above."; |
| } |
| } else { |
| LOG(ERROR) << "File already in latest proto format: " << input_filename; |
| } |
|
|
| |
| WriteProtoToTextFile(net_param, argv[2]); |
|
|
| LOG(INFO) << "Wrote upgraded NetParameter text proto to " << argv[2]; |
| return !success; |
| } |
|
|