TryRpc

パブリック最終クラスTryRpc

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

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

- `address` (リクエストのホスト + ポートまたは BNS アドレス) - `method` (リクエストのメソッド名) - `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」操作とは異なり、接続が失敗した場合、またはリモート ワーカーがエラー ステータスを返した場合、この操作は例外を再発生させません。代わりに、対応する RPC 呼び出しの `status_code` および `status_message` エントリには、RPC 呼び出しから返されたエラーが設定されます。 「response」テンソルには、RPC が失敗しなかったミニバッチ エントリの有効な応答値が含まれます。残りのエントリには空の文字列が含まれます。

ネストされたクラス

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

パブリックメソッド

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

継承されたメソッド

パブリックメソッド

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

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

パラメーター
範囲現在のスコープ
住所「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 リクエストが送信されます。この引数は「アドレス」と「メソッド」でブロードキャストされます。
オプションオプションの属性値を持ちます
戻り値
  • TryRpc の新しいインスタンス

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

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

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

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

public Output <String>応答()

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

public Output <整数> statusCode ()

「request」と同じ形です。値は、tensorflow ステータス列挙コードに対応します。

public Output <String> statusMessage ()

「request」と同じ形です。値は、RPC 呼び出しから返されるステータス メッセージに対応します。

public static TryRpc.Options timeoutInMs (長いタイムアウトInMs)

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