Wykonuj partie żądań RPC.
Ta operacja asynchronicznie wykonuje pojedyncze żądanie RPC lub grupę żądań. Żądania RPC są definiowane przez trzy główne parametry:
- `adres` (host+port lub adres BNS żądania) - `method` (nazwa metody dla żądania) - `request` (serializowany ciąg proto lub wektor ciągów argumentu żądania RPC).
Na przykład, jeśli masz usługę RPC działającą na porcie localhost:2345, a jej interfejs jest skonfigurowany przy użyciu następującej deklaracji proto:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}
następnie wywołaj tę opcję z argumentami: address = "localhost:2345"
method = "MyService/MyMethod"
Tensor `request` to tensor stringów reprezentujący serializowane ciągi `MyRequestProto`; a wynikowy tensor ciągu „odpowiedź” będzie miał ten sam kształt i będzie zawierał (po pomyślnym zakończeniu) odpowiednie serializowane ciągi „MyResponseProto”.Na przykład, aby wysłać pojedyncze, puste `MyRequestProto`, wywołaj tę operację z `request = ""`. Aby wysłać 5 równoległych pustych żądań, wywołaj tę operację z `request = ["", "", "", "", ""]`.
Mówiąc bardziej ogólnie, można utworzyć partię serializowanych protosów `MyRequestProto` ze zwykłych tensorów wsadowych za pomocą operacji `encode_proto` i przekonwertować serializowane proto odpowiedzi `MyResponseProto` na tensory wsadowe za pomocą operacji `decode_proto`.
UWAGA Praca z serializowanymi ciągami proto jest szybsza niż tworzenie instancji rzeczywistych obiektów proto w pamięci, więc nie oczekuje się pogorszenia wydajności w porównaniu z pisaniem niestandardowych jąder dla tego przepływu pracy.
W przeciwieństwie do standardowej operacji `Rpc`, jeśli połączenie nie powiedzie się lub zdalny pracownik zwróci status błędu, ta operacja nie powoduje ponownego zgłoszenia wyjątku. Zamiast tego wpisy „kod_statusu” i „komunikat_statusu” dla odpowiedniego wywołania RPC są ustawiane z błędem zwracanym przez wywołanie RPC. Tensor „odpowiedzi” będzie zawierał prawidłowe wartości odpowiedzi dla tych wpisów minipartii, których wywołania RPC nie zawiodły; pozostałe wpisy będą miały puste ciągi.
Klasy zagnieżdżone
klasa | Wypróbuj Opcje Rpc | Opcjonalne atrybuty dla TryRpc |
Stałe
Smyczkowy | OP_NAME | Nazwa tej operacji znana silnikowi rdzenia TensorFlow |
Metody publiczne
statyczny TryRpc | |
statyczne TryRpc.Options | FailFast (logiczna FailFast) |
statyczne TryRpc.Options | protokół (protokół łańcuchowy) |
Dane wyjściowe <TString> | odpowiedź () Taki sam kształt jak „prośba”. |
Dane wyjściowe <TInt32> | Kod statusu () Taki sam kształt jak „prośba”. |
Dane wyjściowe <TString> | statusWiadomość () Taki sam kształt jak „prośba”. |
statyczne TryRpc.Options | timeoutInMs (Długi limit czasuInMs) |
Metody dziedziczone
Stałe
publiczny statyczny końcowy ciąg znaków OP_NAME
Nazwa tej operacji znana silnikowi rdzenia TensorFlow
Metody publiczne
public static TryRpc create (Zakres zakresu , Operand < TString > adres, Operand < TString > metoda, Operand < TString > żądanie, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację TryRpc.
Parametry
zakres | aktualny zakres |
---|---|
adres | „0-D” lub „1-D”. Adres (tj. nazwa_hosta:port) serwera RPC. Jeśli tensor ma więcej niż 1 element, wysyłanych jest wiele równoległych żądań RPC. Ten argument jest rozgłaszany z „metodą” i „żądaniem”. |
metoda | „0-D” lub „1-D”. Adres metody na serwerze RPC. Jeśli tensor ma więcej niż 1 element, wysyłanych jest wiele równoległych żądań RPC. Ten argument jest rozgłaszany z „adresem” i „żądaniem”. |
wniosek | „0-D” lub „1-D”. Serializowane ciągi proto: argument żądania RPC. Jeśli tensor ma więcej niż 1 element, wysyłanych jest wiele równoległych żądań RPC. Ten argument rozgłasza z „adresem” i „metodą”. |
opcje | przenosi opcjonalne wartości atrybutów |
Powroty
- nowa instancja TryRpc
public static TryRpc.Options Fast (Boolean Fast)
Parametry
niepowodzenieSzybko | „boolowski”. Jeśli „true” (domyślnie), awarie połączenia (tzn. serwer nie odpowiada natychmiast) powodują awarię RPC. |
---|
publiczny statyczny protokół TryRpc.Options (protokół String)
Parametry
protokół | Protokół RPC, którego należy używać. Pusty ciąg oznacza użycie protokołu domyślnego. Opcje obejmują „grpc”. |
---|
publiczne wyjście < TString > odpowiedź ()
Taki sam kształt jak „prośba”. Serializowane ciągi proto: odpowiedzi RPC.
publiczne wyjście < TInt32 > kod statusu ()
Taki sam kształt jak „prośba”. Wartości odpowiadają kodom wyliczeniowym stanu tensorflow.
publiczne wyjście < TString > statusMessage ()
Taki sam kształt jak „prośba”. Wartości odpowiadają komunikatom o stanie zwróconym z wywołań RPC.
publiczny statyczny Limit czasu TryRpc.OptionsInMs (długi limit czasuInMs)
Parametry
limit czasuInMs | `int`. Jeśli „0” (domyślnie), jądro uruchomi żądanie RPC i przekroczy limit czasu tylko wtedy, gdy upłynie termin RPC lub upłynie limit czasu sesji. Jeśli ta wartość jest większa niż „0”, operacja zgłosi wyjątek, jeśli RPC trwa dłużej niż „timeout_in_ms”. |
---|