#pragma once #include #include namespace paddle { namespace custom_trainer { namespace feed { class YamlHelper { public: // 直接使用node["key"]判断,会导致node数据被加入key键 static bool has_key(const YAML::Node& node, const std::string& key) { CHECK(node.Type() == YAML::NodeType::Map); for (const auto& itr : node) { if (key == itr.first.as()) { return true; } } return false; } template static T get_with_default(YAML::Node node, const std::string& key, const T& default_v) { if (has_key(node, key)) { return node[key].as(); } return default_v; } }; } // namespace feed } // namespace custom_trainer } // namespace paddle