Output unconsumed cmdline flags to help using TFLite benchmark tool.

PiperOrigin-RevId: 317419402
Change-Id: I599b487a739808bc8f954b798bd54b75c9b715ad
This commit is contained in:
Chao Mei 2020-06-19 19:09:57 -07:00 committed by TensorFlower Gardener
parent aa7ff6aa28
commit ce7fef0740
4 changed files with 28 additions and 1 deletions

View File

@ -229,6 +229,13 @@ TfLiteStatus BenchmarkModel::ParseFlags(int* argc, char** argv) {
TFLITE_LOG(ERROR) << usage;
return kTfLiteError;
}
std::string unconsumed_args =
Flags::ArgsToString(*argc, const_cast<const char**>(argv));
if (!unconsumed_args.empty()) {
TFLITE_LOG(WARN) << "Unconsumed cmdline flags: " << unconsumed_args;
}
return kTfLiteOk;
}

View File

@ -325,6 +325,15 @@ std::string Flag::GetTypeName() const {
usage_text << "\t" << flag.usage_text_ << "\n";
}
return usage_text.str();
} // namespace tflite
}
/*static*/ std::string Flags::ArgsToString(int argc, const char** argv) {
std::string args;
for (int i = 1; i < argc; ++i) {
args.append(argv[i]);
if (i != argc - 1) args.append(" ");
}
return args;
}
} // namespace tflite

View File

@ -140,6 +140,9 @@ class Flags {
// usage_text strings in flag_list[].
static std::string Usage(const std::string& cmdline,
const std::vector<Flag>& flag_list);
// Return a space separated string containing argv[1, ..., argc-1].
static std::string ArgsToString(int argc, const char** argv);
};
} // namespace tflite

View File

@ -356,5 +356,13 @@ TEST(CommandLineFlagsTest, DuplicateFlagsAndArgs) {
EXPECT_EQ(argc, 2);
}
TEST(CommandLineFlagsTest, ArgsToString) {
int argc = 3;
const char* argv_strings[] = {"program_name", "--some_int=1", "--some_int=2"};
std::string args =
Flags::ArgsToString(argc, reinterpret_cast<const char**>(argv_strings));
EXPECT_EQ("--some_int=1 --some_int=2", args);
}
} // namespace
} // namespace tflite