【发布时间】:2021-08-14 22:53:54
【问题描述】:
我正在尝试解析类似于以下几行的神经网络配置文件。实际文件会有更多行,但格式相似。
Resnet50 {
Layer CONV1 {
Type: CONV
Stride { X: 2, Y: 2 }
Dimensions { K: 64, C: 3, R: 7, S: 7, Y:224, X:224 }
}
Layer CONV2_1_1 {
Type: CONV
Stride { X: 1, Y: 1 }
Dimensions { K: 64, C: 64, R: 1, S: 1, Y: 56, X: 56 }
}
我用这个Boost参数解析代码:
void to_cout(const std::vector<std::string> &v)
{
std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>{std::cout, "\n"});
}
int main(int argc, char* argv[]) {
namespace po = boost::program_options;
po::options_description conf("Config file options");
conf.add_options()("confg_file", po::value<std::string>(&file_name), "HW configuration file");
po::options_description all_options;
all_options.add(conf);
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, all_options), vm);
po::notify(vm);
return 0;
}
似乎是一个常规的解析例程。但是配置文件没有被正确解析,因为vm的to_cout中没有输出。 parse_command_line 如何进入示例配置文件的层次结构?
【问题讨论】:
标签: c++ parsing boost configuration-files boost-program-options