|
|
|
@ -34,6 +34,8 @@ const int64_t kDynamicImageSizeNum = 2;
|
|
|
|
|
const size_t kMaxDynamicDimNum = 100;
|
|
|
|
|
const size_t kMaxNDDimNum = 4;
|
|
|
|
|
const size_t kMinNDDimNum = 1;
|
|
|
|
|
const size_t kSquareBracketsSize = 2;
|
|
|
|
|
const size_t kRangePairSize = 2;
|
|
|
|
|
// datatype/formats from user to GE, Unified to util interface file later
|
|
|
|
|
const std::map<std::string, ge::DataType> kOutputTypeSupportDatatype = {
|
|
|
|
|
{"FP32", ge::DT_FLOAT}, {"FP16", ge::DT_FLOAT16}, {"UINT8", ge::DT_UINT8}};
|
|
|
|
@ -292,7 +294,8 @@ bool ParseSingleShapeRange(std::string &shape_range, vector<pair<int64_t, int64_
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool is_square_brackets = (square_brackets[0] == '[') && (square_brackets[1] == ']') && (square_brackets.size() == 2);
|
|
|
|
|
bool is_square_brackets = (square_brackets[0] == '[') && (square_brackets[1] == ']') &&
|
|
|
|
|
(square_brackets.size() == kSquareBracketsSize);
|
|
|
|
|
if (!is_square_brackets) {
|
|
|
|
|
ErrorManager::GetInstance().ATCReportErrMessage("E10048", {"shape_range", "reason", "sample"},
|
|
|
|
|
{shape_range, kInputShapeRangeInvalid, kInputShapeRangeSample2});
|
|
|
|
@ -320,7 +323,7 @@ bool ParseSingleShapeRange(std::string &shape_range, vector<pair<int64_t, int64_
|
|
|
|
|
} else {
|
|
|
|
|
range_pair = std::make_pair(range_value, range_value);
|
|
|
|
|
}
|
|
|
|
|
} else if (range_pair_set.size() == 2) {
|
|
|
|
|
} else if (range_pair_set.size() == kRangePairSize) {
|
|
|
|
|
// unknown dim, should get range.
|
|
|
|
|
long range_left = 0;
|
|
|
|
|
if (!StringToLongNoThrow(range_pair_set.at(0), range_left)) {
|
|
|
|
@ -332,9 +335,10 @@ bool ParseSingleShapeRange(std::string &shape_range, vector<pair<int64_t, int64_
|
|
|
|
|
}
|
|
|
|
|
if (range_left < 0 || (range_right < 0)) {
|
|
|
|
|
ErrorManager::GetInstance().ATCReportErrMessage("E10048", {"shape_range", "reason", "sample"},
|
|
|
|
|
{shape_range, kInputShapeRangeInvalid, kInputShapeRangeSample3});
|
|
|
|
|
{shape_range, kInputShapeRangeInvalid, kInputShapeRangeSample3});
|
|
|
|
|
GELOGE(PARAM_INVALID,
|
|
|
|
|
"Parse input parameter [--input_shape_range]'s shape range[%s] failed, reason: %s, correct sample is %s.",
|
|
|
|
|
"Parse input parameter [--input_shape_range]'s shape range[%s] failed,"
|
|
|
|
|
"reason: %s, correct sample is %s.",
|
|
|
|
|
shape_range.c_str(), kInputShapeRangeInvalid, kInputShapeRangeSample3);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
@ -402,7 +406,7 @@ Status CheckDynamicInputParamValid(string &dynamic_batch_size, string &dynamic_i
|
|
|
|
|
if (param_size == 0) {
|
|
|
|
|
if (!input_shape_range.empty()) {
|
|
|
|
|
std::map<string, std::vector<std::pair<int64_t, int64_t>>> shape_range_map;
|
|
|
|
|
if(!ParseInputShapeRange(input_shape_range, shape_range_map)) {
|
|
|
|
|
if (!ParseInputShapeRange(input_shape_range, shape_range_map)) {
|
|
|
|
|
GELOGE(ge::PARAM_INVALID, "Failed to parse input shape range: %s", input_shape_range.c_str());
|
|
|
|
|
return ge::PARAM_INVALID;
|
|
|
|
|
}
|
|
|
|
|