Execute lotes de solicitações RPC.
Esta operação executa de forma assíncrona uma única solicitação RPC ou um lote de solicitações. As solicitações RPC são definidas por três parâmetros principais:
- `address` (o host+porta ou endereço BNS da solicitação) - `method` (o nome do método para a solicitação) - `request` (a proto string serializada, ou vetor de strings, do argumento da solicitação RPC).
Por exemplo, se você tiver um serviço RPC em execução na porta localhost:2345 e sua interface estiver configurada com a seguinte declaração proto:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}
então chame esta operação com argumentos: address = "localhost:2345"
method = "MyService/MyMethod"
O tensor `request` é um tensor de string que representa strings `MyRequestProto` serializadas; e o tensor de string de saída `response` terá o mesmo formato e conterá (após a conclusão bem-sucedida) strings `MyResponseProto` serializadas correspondentes.Por exemplo, para enviar um único `MyRequestProto` vazio, chame esta operação com `request = ""`. Para enviar 5 solicitações vazias paralelas , chame esta operação com `request = ["", "", "", "", ""]`.
De forma mais geral, pode-se criar um lote de protos serializados `MyRequestProto` a partir de tensores em lote regulares usando a operação `encode_proto` e converter os protos serializados de resposta `MyResponseProto` em tensores em lote usando a operação `decode_proto`.
NOTA Trabalhar com proto strings serializadas é mais rápido do que instanciar objetos proto reais na memória, portanto, nenhuma degradação de desempenho é esperada em comparação com a gravação de kernels personalizados para este fluxo de trabalho.
Ao contrário da operação `Rpc` padrão, se a conexão falhar ou o trabalhador remoto retornar um status de erro, esta operação não gerará novamente a exceção. Em vez disso, as entradas `status_code` e `status_message` para a chamada RPC correspondente são definidas com o erro retornado da chamada RPC. O tensor `response` conterá valores de resposta válidos para as entradas do minibatch cujos RPCs não falharam; o restante das entradas terá strings vazias.
Classes aninhadas
aula | TryRpc.Options | Atributos opcionais para TryRpc |
Constantes
Corda | OP_NAME | O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow |
Métodos Públicos
TryRpc estático | |
TryRpc.Options estático | failFast (booleano failFast) |
TryRpc.Options estático | protocolo (protocolo String) |
Saída <TString> | resposta () Mesma forma que `request`. |
Saída < TInt32 > | código de status () Mesma forma que `request`. |
Saída <TString> | mensagem de status () Mesma forma que `request`. |
TryRpc.Options estático | timeoutInMs (tempo limite longoInMs) |
Métodos herdados
Constantes
String final estática pública OP_NAME
O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow
Métodos Públicos
public static TryRpc create ( Escopo do escopo, Operando <TString> endereço, Operando <TString> método, Operando <TString> solicitação, Opções... opções)
Método de fábrica para criar uma classe que envolve uma nova operação TryRpc.
Parâmetros
escopo | escopo atual |
---|---|
endereço | `0-D` ou `1-D`. O endereço (ou seja, host_name:porta) do servidor RPC. Se este tensor tiver mais de 1 elemento, várias solicitações RPC paralelas serão enviadas. Este argumento é transmitido com `método` e `request`. |
método | `0-D` ou `1-D`. O endereço do método no servidor RPC. Se este tensor tiver mais de 1 elemento, várias solicitações RPC paralelas serão enviadas. Este argumento é transmitido com `address` e `request`. |
solicitar | `0-D` ou `1-D`. Strings proto serializadas: o argumento de solicitação rpc. Se este tensor tiver mais de 1 elemento, várias solicitações RPC paralelas serão enviadas. Este argumento é transmitido com `address` e `method`. |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância do TryRpc
public static TryRpc.Options failFast (booleano failFast)
Parâmetros
falharFast | `booleano`. Se for `true` (padrão), então falhas na conexão (ou seja, o servidor não responde imediatamente) causam uma falha de RPC. |
---|
Protocolo TryRpc.Options estático público (protocolo String)
Parâmetros
protocolo | Protocolo RPC a ser usado. String vazia significa usar o protocolo padrão. As opções incluem 'grpc'. |
---|
Saída pública < TString > resposta ()
Mesma forma que `request`. Strings proto serializadas: as respostas rpc.
Saída pública < TInt32 > statusCode ()
Mesma forma que `request`. Os valores correspondem aos códigos enum de status do tensorflow.
Saída pública < TString > statusMessage ()
Mesma forma que `request`. Os valores correspondem às mensagens de status retornadas das chamadas RPC.
público estático TryRpc.Options timeoutInMs (tempo limite longoInMs)
Parâmetros
timeoutInMs | `int`. Se for `0` (padrão), então o kernel executará a solicitação RPC e somente atingirá o tempo limite se o prazo do RPC passar ou se a sessão expirar. Se este valor for maior que `0`, então a operação gerará uma exceção se o RPC demorar mais que `timeout_in_ms`. |
---|