tensorflow ::サービング::ソース

これは抽象クラスです。

#include <source.h>

ロードするサーバブルを調達する、またはより正確には、それらのサーバブルをロードするために使用できるデータを処理するモジュールの抽象化。

概要

このようなデータハンドルの例は次のとおりです。

  • シリアル化された語彙マップへのファイルシステムパス
  • ロードする機械学習モデルを指定する着信RPCへのハンドル
  • ローダー(参照loader.hの)データハンドルは、一般的に小さいことが想定されます。

Aソースは新しいservablesおよび/またはservablesの新バージョンおよび/またはサービス提供可能なバージョンをアンロードする必要性について調べるために、いくつかの外部リソース(例えば、ファイルシステム、RPCコール)を監視します。これは、ターゲット・モジュール(例えば、指示するために設けられてコールバックを使用しAspiredVersionsManager負荷に)バージョン(S)指定されたサービス提供可能にします。さらに、ターゲットモジュールのセマンティクスに応じて、ソースは、暗黙的にこれらのservablesを省略してアンロードするものを、それを指示します。

一般的なケースは、ということであるソースは正確に一つのサービス提供可能なためバージョンを発します。さらに単純なケースは、サーバブルがサーバーの存続期間中、単一の静的バージョンを持っている場合です。

ソースは、複数の放出されたサーバブル間で共有される状態を格納できます。

  1. 複数のサーバブルが使用する共有スレッドプールまたはその他のリソース。
  2. 各servableインスタンスでデータ構造を複製する時間とスペースのオーバーヘッドを回避するために、複数のservableが使用する共有の読み取り専用データ構造。初期化の時間とサイズがごくわずかな共有状態(スレッドプールなど)は、ソースによって熱心に作成できます。ソースは、出力された各ServableDataアイテムにそのポインターを埋め込みます。高価または大型の共有状態の作成は、最初の適用を延期しなければならないローダ::ロード()マネージャーによって管理呼び出し、すなわち。対称的には、ローダ::アンロード()高価/大容量の共有状態を使用して、最終的なサービス提供可能なへの呼び出しは、それを取り壊す必要があります。

コンストラクタとデストラクタ

~Source ()

パブリックタイプ

AspiredVersionsCallbackを使用して
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
コールバックのためのソースターゲットに配信可能なの供給バージョン(複数可)には、ロードされます。

公の行事

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
使用するAspiredVersionsCallbackを提供します。せいぜい一度だけ呼び出すことができます。

パブリックタイプ

AspiredVersionsCallback

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

コールバックのためのソースターゲットに配信可能なの供給バージョン(複数可)には、ロードされます。

コールバックの1回の呼び出しは、単一のservableストリーム( 'servable_name'で指定)に関係します。呼び出しで提供されるすべてのバージョンは、「servable_name」で識別されるservable用である必要があります。異なるサービス可能なストリームでの呼び出しは、互いに直交しています。

複数の呼び出しにより、同じID(つまり、同じサービス可能な名前とバージョン)を持つs​​ervable-dataオブジェクトが提供される場合があります。このようなservable-dataオブジェクトは、意味的に同等として扱われます。受信者は最終的に1つを保持し、残りを破棄します。

サーブ可能なバージョンVが最初の呼び出しで提供され、その後2番目の呼び出しから省略された場合、Vを省略した場合の意味は、コールバックのターゲットのセマンティクスによって異なります。特定のターゲットは、Vの省略を、Vをアンロードするための暗黙の命令として解釈します。各ターゲットは、この点でそのセマンティクスを文書化する必要があります。

公の行事

SetAspiredVersionsCallback

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

使用するAspiredVersionsCallbackを提供します。せいぜい一度だけ呼び出すことができます。

〜出典

virtual  ~Source()=default