RPC

パブリック最終クラスRpc

RPC リクエストのバッチを実行します。

この操作は、単一の RPC リクエストまたはリクエストのバッチを非同期的に実行します。 RPC リクエストは、次の 3 つの主要なパラメータによって定義されます。

- `address` (リクエストのホスト+ポートまたは BNS アドレス) - `method` (リクエストの RPC メソッド名) - `request` (RPC リクエスト引数のシリアル化されたプロト文字列、または文字列のベクトル) 。

たとえば、ポート localhost:2345 で RPC サービスが実行されており、そのインターフェイスが次の proto 宣言:

service MyService {
   rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
   
 };
 }
で構成されている場合、引数を指定してこの操作を呼び出します:
address = "localhost:2345"
 method = "MyService/MyMethod"
 
`request` テンソルは、次のことを表す文字列テンソルです。シリアル化された「MyRequestProto」文字列。そして、出力文字列テンソル `response` は同じ形状を持ち、(正常に完了すると) 対応するシリアル化された `MyResponseProto` 文字列を含みます。

たとえば、単一の空の `MyRequestProto` を送信するには、この操作を `request = ""` で呼び出します。 5 つ空のリクエストを並行して送信するには、`request = ["", "", "", "", ""]` を指定してこのオペレーションを呼び出します。

より一般的には、「encode_proto」演算子を使用して通常のバッチ化されたテンソルから「MyRequestProto」シリアル化プロトのバッチを作成し、「decode_proto」演算子を使用して応答の「MyResponseProto」シリアル化プロトをバッチ化されたテンソルに変換できます。

シリアル化されたプロト文字列の操作は、メモリ内で実際のプロト オブジェクトをインスタンス化するよりも高速であるため、このワークフロー用のカスタム カーネルを作成する場合と比較してパフォーマンスの低下は予想されません。

接続が失敗するか、リモート ワーカーがエラー ステータスを返した場合、操作はこの例外をローカルで再発生させます。

グラフ内で RPC の失敗を手動で処理したい場合は、「TryRpc」オペレーションを参照してください。

ネストされたクラス

クラスRpc.オプションRpcのオプションの属性

パブリックメソッド

出力<文字列>
asOutput ()
テンソルのシンボリック ハンドルを返します。
静的Rpc
create (スコープスコープ、オペランド<String> アドレス、オペランド<String> メソッド、オペランド<String> リクエスト、オプション...オプション)
新しい Rpc 操作をラップするクラスを作成するファクトリ メソッド。
静的Rpc.オプション
フェイルファースト(ブールフェイルファースト)
静的Rpc.オプション
プロトコル(文字列プロトコル)
出力<文字列>
応答()
「request」と同じ形です。
静的Rpc.オプション
timeoutInMs (長いタイムアウトInMs)

継承されたメソッド

パブリックメソッド

public Output <String> asOutput ()

テンソルのシンボリック ハンドルを返します。

TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。

public static Rpc create (スコープスコープ、オペランド<String> アドレス、オペランド<String> メソッド、オペランド<String> リクエスト、オプション...オプション)

新しい Rpc 操作をラップするクラスを作成するファクトリ メソッド。

パラメーター
範囲現在のスコープ
住所「0-D」または「1-D」。 RPC サーバーのアドレス (つまり、host_name:port)。このテンソルに複数の要素がある場合、複数の並列 RPC リクエストが送信されます。この引数は `method` と `request` でブロードキャストされます。
方法「0-D」または「1-D」。 RPC サーバー上のメソッド アドレス。このテンソルに複数の要素がある場合、複数の並列 RPC リクエストが送信されます。この引数は `address` と `request` を使用してブロードキャストされます。
リクエスト「0-D」または「1-D」。シリアル化されたプロト文字列: rpc リクエスト引数。このテンソルに複数の要素がある場合、複数の並列 RPC リクエストが送信されます。この引数は「アドレス」と「メソッド」でブロードキャストされます。
オプションオプションの属性値を持ちます
戻り値
  • Rpc の新しいインスタンス

public static Rpc.Options failedFast (ブール値のfailFast)

パラメーター
失敗が早い「ブール値」。 「true」(デフォルト) の場合、接続に失敗すると (つまり、サーバーがすぐに応答しないと)、RPC エラーが発生します。

public static Rpc.Optionsプロトコル(文字列プロトコル)

パラメーター
プロトコル使用する RPC プロトコル。空の文字列は、デフォルトのプロトコルを使用することを意味します。オプションには「grpc」が含まれます。

public Output <String>応答()

「request」と同じ形です。シリアル化されたプロト文字列: rpc 応答。

public static Rpc.Options timeoutInMs (Long timeoutInMs)

パラメーター
タイムアウト時間`int`。 「0」(デフォルト) の場合、カーネルは RPC 要求を実行し、RPC 期限が過ぎるかセッションがタイムアウトした場合にのみタイムアウトします。この値が「0」より大きい場合、RPC に「timeout_in_ms」よりも時間がかかると、この操作は例外を発生させます。