DLRModelクラスは、ここで定義されています。
DLRModel::DLRModel(const std::string& model_path, const DLContext& ctx) { backend_ = get_backend(model_path); ctx_ = ctx; // std::string cmdline = "tar -xf " + model_path; // system(cmdline.c_str()); if (backend_ == DLRBackend::kTVM) { SetupTVMModule(model_path); } else if (backend_ == DLRBackend::kTREELITE) { SetupTreeliteModule(model_path); } else { LOG(FATAL) << "Unsupported backend!"; } }
バックエンド(TVM or Treelite)によって、生成するモデルを変えています。
get_backendメソッドにて、バックエンドを決めます。
DLRBackend get_backend(const std::string &dirname) { std::vector<std::string> paths; listdir(dirname, paths); DLRBackend backend = DLRBackend::kTREELITE; for (auto filename: paths) { if (endsWith(filename, ".params")){ backend = DLRBackend::kTVM; break; } } return backend; }