static*/
| 277 | } |
| 278 | |
| 279 | /*static*/ string Flags::Usage(const string& cmdline, |
| 280 | const std::vector<Flag>& flag_list) { |
| 281 | string usage_text; |
| 282 | if (!flag_list.empty()) { |
| 283 | strings::Appendf(&usage_text, "usage: %s\nFlags:\n", cmdline.c_str()); |
| 284 | } else { |
| 285 | strings::Appendf(&usage_text, "usage: %s\n", cmdline.c_str()); |
| 286 | } |
| 287 | for (const Flag& flag : flag_list) { |
| 288 | const char* type_name = ""; |
| 289 | string flag_string; |
| 290 | if (flag.type_ == Flag::TYPE_INT32) { |
| 291 | type_name = "int32"; |
| 292 | flag_string = strings::Printf("--%s=%d", flag.name_.c_str(), |
| 293 | flag.int32_default_for_display_); |
| 294 | } else if (flag.type_ == Flag::TYPE_INT64) { |
| 295 | type_name = "int64"; |
| 296 | flag_string = strings::Printf( |
| 297 | "--%s=%lld", flag.name_.c_str(), |
| 298 | static_cast<long long>(flag.int64_default_for_display_)); |
| 299 | } else if (flag.type_ == Flag::TYPE_BOOL) { |
| 300 | type_name = "bool"; |
| 301 | flag_string = |
| 302 | strings::Printf("--%s=%s", flag.name_.c_str(), |
| 303 | flag.bool_default_for_display_ ? "true" : "false"); |
| 304 | } else if (flag.type_ == Flag::TYPE_STRING) { |
| 305 | type_name = "string"; |
| 306 | flag_string = strings::Printf("--%s=\"%s\"", flag.name_.c_str(), |
| 307 | flag.string_default_for_display_.c_str()); |
| 308 | } else if (flag.type_ == Flag::TYPE_FLOAT) { |
| 309 | type_name = "float"; |
| 310 | flag_string = strings::Printf("--%s=%f", flag.name_.c_str(), |
| 311 | flag.float_default_for_display_); |
| 312 | } |
| 313 | strings::Appendf(&usage_text, "\t%-33s\t%s\t%s\n", flag_string.c_str(), |
| 314 | type_name, flag.usage_text_.c_str()); |
| 315 | } |
| 316 | return usage_text; |
| 317 | } |
| 318 | |
| 319 | } // namespace tensorflow |