in src/dlr_common.cc [149:200]
void dlr::InitModelPath(const std::vector<std::string>& files, ModelPath* paths) {
for (auto filename : files) {
std::string basename = GetBasename(filename);
if (EndsWith(filename, ".json") &&
std::all_of(std::begin(SAGEMAKER_AUXILIARY_JSON_FILES),
std::end(SAGEMAKER_AUXILIARY_JSON_FILES),
[basename](const std::string& s) { return (s != basename); }) &&
filename != "version.json") {
if (paths->model_json.length() > 0) {
std::string msg = "Found multiple *.json files: ";
msg += paths->model_json + " " + filename;
throw dmlc::Error(msg);
}
paths->model_json = filename;
} else if (!EndsWith(filename, LIBDLR) && EndsWith(filename, LIBEXT)) {
if (paths->model_lib.length() > 0) {
std::string msg = "Found multiple model lib files: ";
msg += paths->model_lib + " " + filename;
throw dmlc::Error(msg);
}
paths->model_lib = filename;
} else if (EndsWith(filename, ".tensorrt")) {
if (paths->model_lib.length() > 0) {
std::string msg = "Found multiple model lib files: ";
msg += paths->model_lib + " " + filename;
throw dmlc::Error(msg);
}
paths->model_lib = filename;
} else if (EndsWith(filename, ".params")) {
if (paths->params.length() > 0) {
std::string msg = "Found multiple *.params files: ";
msg += paths->params + " " + filename;
throw dmlc::Error(msg);
}
paths->params = filename;
} else if (EndsWith(filename, ".meta")) {
if (paths->metadata.length() > 0) {
std::string msg = "Found multiple *.meta files: ";
msg += paths->metadata + " " + filename;
throw dmlc::Error(msg);
}
paths->metadata = filename;
} else if (EndsWith(filename, ".ro")) {
if (paths->relay_executable.length() > 0) {
std::string msg = "Found multiple *.ro files: ";
msg += paths->relay_executable + " " + filename;
throw dmlc::Error(msg);
}
paths->relay_executable = filename;
}
}
}