Opera serializuje komunikaty protobuf dostarczone w tensorach wejściowych.
Typy tensorów w `values` muszą odpowiadać schematowi dla pól określonych w `field_names`. Wszystkie tensory w „wartościach” muszą mieć wspólny przedrostek kształtu, wsad_shape .
Tensor „rozmiarów” określa liczbę powtórzeń dla każdego pola. Liczba powtórzeń (ostatni wymiar) każdego tensora w „wartościach” musi być większa lub równa odpowiedniej liczbie powtórzeń w „rozmiarach”.
Aby zapewnić kontekst nazw pól, należy podać nazwę „typ_wiadomości”. Rzeczywisty deskryptor komunikatu można sprawdzić w puli połączonych deskryptorów lub w nazwie pliku dostarczonej przez osobę wywołującą przy użyciu atrybutu `źródło_deskryptu`.
W większości przypadków mapowanie między typami pól Proto i typami TensorFlow jest proste. Istnieje jednak kilka szczególnych przypadków:
- Pole proto zawierające podkomunikat lub grupę można przekonwertować jedynie na `DT_STRING` (serializowany podkomunikat). Ma to na celu zmniejszenie złożoności interfejsu API. Wynikowy ciąg znaków może zostać użyty jako dane wejściowe innej instancji operacji decode_proto.
- TensorFlow nie obsługuje liczb całkowitych bez znaku. Operacje reprezentują typy uint64 jako `DT_INT64` z tym samym wzorcem bitowym z uzupełnieniem do dwóch (w oczywisty sposób). Wartości int32 bez znaku można dokładnie przedstawić, określając typ `DT_INT64` lub używając uzupełnienia dwójkowego, jeśli wywołujący określi `DT_INT32` w atrybucie `output_types`.
Atrybut `descriptor_source` wybiera źródło deskryptorów protokołu, z których należy korzystać podczas wyszukiwania `message_type`. To może być:
- Pusty ciąg znaków lub „local://”, w którym to przypadku tworzone są deskryptory protokołu dla definicji proto C++ (nie Pythona) połączonych z plikiem binarnym.
- Plik, w którym to przypadku tworzone są deskryptory protokołu z pliku, który powinien zawierać `FileDescriptorSet` serializowany jako ciąg znaków. UWAGA: Możesz zbudować plik `źródło_deskryptu`, używając opcji `--descriptor_set_out` i `--include_imports` do kompilatora protokołu `protoc`.
- A „bajty://
Klasy zagnieżdżone
klasa | Opcje EncodeProto | Opcjonalne atrybuty dla EncodeProto |
Stałe
Strunowy | OP_NAME | Nazwa tej operacji znana silnikowi rdzenia TensorFlow |
Metody publiczne
Dane wyjściowe <TString> | jako wyjście () Zwraca symboliczny uchwyt tensora. |
Dane wyjściowe <TString> | bajty () Tensor serializowanych protosów o kształcie „batch_shape”. |
statyczny EncodeProto | |
statyczne EncodeProto.Options | deskryptorSource (deskryptor ciągu znaków) |
Metody dziedziczone
Stałe
publiczny statyczny końcowy ciąg znaków OP_NAME
Nazwa tej operacji znana silnikowi rdzenia TensorFlow
Metody publiczne
publiczne wyjście < TString > asOutput ()
Zwraca symboliczny uchwyt tensora.
Dane wejściowe operacji TensorFlow są wynikami innej operacji TensorFlow. Ta metoda służy do uzyskania symbolicznego uchwytu reprezentującego obliczenia danych wejściowych.
public static EncodeProto create ( Zakres zakresu, Operand <TInt32> rozmiary, Iterowalne< Operand <?>> wartości, Lista<String> nazwy pól, String MessageType, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację EncodeProto.
Parametry
zakres | aktualny zakres |
---|---|
rozmiary | Tensor int32 o kształcie `[batch_shape, len(field_names)]`. |
wartości | Lista tensorów zawierających wartości dla odpowiedniego pola. |
Nazwy pól | Lista ciągów zawierających nazwy pól proto. |
typ wiadomości | Nazwa typu wiadomości proto do zdekodowania. |
opcje | przenosi opcjonalne wartości atrybutów |
Zwroty
- nowa instancja EncodeProto