Add an API in model_task_graph to create or use cached model resources.
PiperOrigin-RevId: 559174528
This commit is contained in:
parent
bcb83302bf
commit
8c4b971c14
|
@ -186,6 +186,21 @@ absl::StatusOr<const ModelResources*> ModelTaskGraph::CreateModelResources(
|
|||
return model_resources_cache_service.GetObject().GetModelResources(tag);
|
||||
}
|
||||
|
||||
absl::StatusOr<const ModelResources*> ModelTaskGraph::GetOrCreateModelResources(
|
||||
SubgraphContext* sc, std::unique_ptr<proto::ExternalFile> external_file,
|
||||
std::string tag_suffix) {
|
||||
auto model_resources_cache_service = sc->Service(kModelResourcesCacheService);
|
||||
if (model_resources_cache_service.IsAvailable()) {
|
||||
std::string tag =
|
||||
absl::StrCat(CreateModelResourcesTag(sc->OriginalNode()), tag_suffix);
|
||||
if (model_resources_cache_service.GetObject().Exists(tag)) {
|
||||
return model_resources_cache_service.GetObject().GetModelResources(tag);
|
||||
}
|
||||
}
|
||||
return ModelTaskGraph::CreateModelResources(sc, std::move(external_file),
|
||||
tag_suffix);
|
||||
}
|
||||
|
||||
absl::StatusOr<const ModelAssetBundleResources*>
|
||||
ModelTaskGraph::CreateModelAssetBundleResources(
|
||||
SubgraphContext* sc, std::unique_ptr<proto::ExternalFile> external_file,
|
||||
|
|
|
@ -87,6 +87,20 @@ class ModelTaskGraph : public Subgraph {
|
|||
SubgraphContext* sc, std::unique_ptr<proto::ExternalFile> external_file,
|
||||
std::string tag_suffix = "");
|
||||
|
||||
template <typename Options>
|
||||
absl::StatusOr<const ModelResources*> GetOrCreateModelResources(
|
||||
SubgraphContext* sc, std::string tag_suffix = "") {
|
||||
auto external_file = std::make_unique<proto::ExternalFile>();
|
||||
external_file->Swap(sc->MutableOptions<Options>()
|
||||
->mutable_base_options()
|
||||
->mutable_model_asset());
|
||||
return GetOrCreateModelResources(sc, std::move(external_file), tag_suffix);
|
||||
}
|
||||
|
||||
absl::StatusOr<const ModelResources*> GetOrCreateModelResources(
|
||||
SubgraphContext* sc, std::unique_ptr<proto::ExternalFile> external_file,
|
||||
std::string tag_suffix = "");
|
||||
|
||||
// If the model resources graph service is available, creates a model asset
|
||||
// bundle resources object from the subgraph context, and caches the created
|
||||
// model asset bundle resources into the model resources graph service on
|
||||
|
|
Loading…
Reference in New Issue
Block a user