diff options
author | Pete Warden <petewarden@google.com> | 2017-04-05 17:10:48 -0800 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2017-04-05 18:24:52 -0700 |
commit | a24c6b842d982de8a38ae5058ace91cb47ee3cef (patch) | |
tree | 6e7a909a5e8ccde22caa2d7b5f4a1a84dda3cdd2 /tensorflow/core/util/command_line_flags.cc | |
parent | 9d57702513001bfded19e72c76a986cce56d5f00 (diff) |
Add AudioSpectrogram op to TensorFlow for audio feature generation
Change: 152332221
Diffstat (limited to 'tensorflow/core/util/command_line_flags.cc')
-rw-r--r-- | tensorflow/core/util/command_line_flags.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tensorflow/core/util/command_line_flags.cc b/tensorflow/core/util/command_line_flags.cc index 03eb076f30..8373eb1f9e 100644 --- a/tensorflow/core/util/command_line_flags.cc +++ b/tensorflow/core/util/command_line_flags.cc @@ -93,6 +93,22 @@ bool ParseBoolFlag(tensorflow::StringPiece arg, tensorflow::StringPiece flag, return false; } +bool ParseFloatFlag(tensorflow::StringPiece arg, tensorflow::StringPiece flag, + float* dst, bool* value_parsing_ok) { + *value_parsing_ok = true; + if (arg.Consume("--") && arg.Consume(flag) && arg.Consume("=")) { + char extra; + if (sscanf(arg.data(), "%f%c", dst, &extra) != 1) { + LOG(ERROR) << "Couldn't interpret value " << arg << " for flag " << flag + << "."; + *value_parsing_ok = false; + } + return true; + } + + return false; +} + } // namespace Flag::Flag(const char* name, tensorflow::int32* dst, const string& usage_text) @@ -116,6 +132,12 @@ Flag::Flag(const char* name, string* dst, const string& usage_text) string_value_(dst), usage_text_(usage_text) {} +Flag::Flag(const char* name, float* dst, const string& usage_text) + : name_(name), + type_(TYPE_FLOAT), + float_value_(dst), + usage_text_(usage_text) {} + bool Flag::Parse(string arg, bool* value_parsing_ok) const { bool result = false; if (type_ == TYPE_INT) { @@ -126,6 +148,8 @@ bool Flag::Parse(string arg, bool* value_parsing_ok) const { result = ParseBoolFlag(arg, name_, bool_value_, value_parsing_ok); } else if (type_ == TYPE_STRING) { result = ParseStringFlag(arg, name_, string_value_, value_parsing_ok); + } else if (type_ == TYPE_FLOAT) { + result = ParseFloatFlag(arg, name_, float_value_, value_parsing_ok); } return result; } @@ -195,6 +219,10 @@ bool Flag::Parse(string arg, bool* value_parsing_ok) const { type_name = "string"; flag_string = strings::Printf("--%s=\"%s\"", flag.name_.c_str(), flag.string_value_->c_str()); + } else if (flag.type_ == Flag::TYPE_FLOAT) { + type_name = "float"; + flag_string = + strings::Printf("--%s=%f", flag.name_.c_str(), *flag.float_value_); } strings::Appendf(&usage_text, "\t%-33s\t%s\t%s\n", flag_string.c_str(), type_name, flag.usage_text_.c_str()); |