此页面由 Cloud Translation API 翻译。
Switch to English

张量流:: 服务:: 资源

这是一个抽象类。

#include <source.h>

一个模块的抽象,该模块提供可加载的servable,或更准确地说,处理可用于加载这些servable的数据。

摘要

此类数据句柄的示例是:

  • 序列化词汇表的文件系统路径
  • 传入RPC的句柄,该句柄指定要加载的机器学习模型
  • 一个Loader (请参阅loader.h )通常假定数据句柄很小。

监视一些外部资源(例如,文件系统,RPC调用),以查找有关新的可服务项目和/或新版本的可服务项目和/或卸载可服务版本的需求。它使用提供的回调来指示目标模块(例如AspiredVersionsManager )要加载给定版本的哪个版本。此外,根据目标模块的语义, 通过省略那些可服务对象来隐式指示它卸载哪些模块。

一个常见的情况是, 发出恰好一个可服务的版本。甚至更简单的情况是,servable在服务器的生存期内具有单个静态版本。

源可以容纳在多个发出的可服务项之间共享的状态

  1. 多个可服务对象使用的共享线程池或其他资源。
  2. 多个可服务对象使用的共享只读数据结构,以避免在每个可服务实例中复制数据结构的时间和空间开销。源可以急于创建其初始化时间和大小可忽略的共享状态(例如线程池),然后将指向其的指针嵌入每个发出的ServableData项目中。昂贵或大型共享状态的创建应推迟到第一个适用的Loader :: Load()调用,即由管理者控制。对称地,使用昂贵/大型共享状态的对最终servable的Loader :: Unload()调用应将其拆除。

构造函数和析构函数

~Source ()

公开类型

AspiredVersionsCallback 使用
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
Source的回调,用于为目标提供可服务的版本。

公共职能

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
提供一个AspiredVersionsCallback来使用。最多只能调用一次。

公开类型

AspiredVersionsCallback

std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)> AspiredVersionsCallback

Source的回调,用于为目标提供可服务的版本。

回调的单个调用与单个可服务流有关(由“ servable_name”提供)。呼叫中提供的所有版本必须针对“ servable_name”中标识的servable。不同的可服务流上的调用彼此正交。

多次调用可以为可服务数据对象提供相同的ID(即,相同的可服务名称和版本)。此类可服务数据对象在语义上等效。接收者最终将保留一个,其余的将被丢弃。

如果在第一次调用中提供了可服务版本V,随后在第二次调用中将其省略,则省略V的含义取决于回调的Target的语义。某些目标会将V的省略解释为隐式指令以卸载V。每个目标都必须在这方面记录其语义。

公共职能

SetAspiredVersionsCallback

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

提供一个AspiredVersionsCallback来使用。最多只能调用一次。

〜来源

virtual  ~Source()=default