Operasi mengekstrak bidang dari pesan buffer protokol serial menjadi tensor.
Operasi `decode_proto` mengekstrak bidang dari pesan buffering protokol serial menjadi tensor. Bidang di `nama_bidang` didekodekan dan dikonversi ke `tipe_output` yang sesuai jika memungkinkan.
Nama `message_type` harus diberikan untuk memberikan konteks pada nama bidang. Deskriptor pesan sebenarnya dapat dicari di kumpulan deskriptor tertaut atau nama file yang disediakan oleh pemanggil menggunakan atribut `descriptor_source`.
Setiap tensor keluaran adalah tensor padat. Artinya, elemen tersebut diberi bantalan untuk menampung jumlah elemen berulang terbanyak yang terlihat di minibatch masukan. (Bentuknya juga diberi bantalan satu untuk mencegah dimensi berukuran nol). Jumlah pengulangan sebenarnya untuk setiap contoh di minibatch dapat ditemukan di keluaran `ukuran`. Dalam banyak kasus, keluaran `decode_proto` langsung dimasukkan ke tf.squeeze jika nilai yang hilang tidak menjadi masalah. Saat menggunakan tf.squeeze, selalu berikan dimensi pemerasan secara eksplisit untuk menghindari kejutan.
Secara umum, pemetaan antara tipe kolom Proto dan tipe TensorFlow sangatlah mudah. Namun, ada beberapa kasus khusus:
- Bidang proto yang berisi subpesan atau grup hanya dapat dikonversi ke `DT_STRING` (subpesan berseri). Hal ini untuk mengurangi kompleksitas API. String yang dihasilkan dapat digunakan sebagai input ke instance lain dari operasi decode_proto.
- TensorFlow tidak memiliki dukungan untuk bilangan bulat yang tidak ditandatangani. Operasi mewakili tipe uint64 sebagai `DT_INT64` dengan pola bit dua komplemen yang sama (cara yang jelas). Nilai int32 yang tidak ditandatangani dapat direpresentasikan secara tepat dengan menentukan tipe `DT_INT64`, atau menggunakan pelengkap ganda jika pemanggil menentukan `DT_INT32` dalam atribut `output_types`.
Serialisasi proto biner dan teks didukung, dan dapat dipilih menggunakan atribut `format`.
Atribut `descriptor_source` memilih sumber deskriptor protokol untuk dilihat saat mencari `message_type`. Ini mungkin:
- String kosong atau "local://", dalam hal ini deskriptor protokol dibuat untuk definisi proto C++ (bukan Python) yang ditautkan ke biner.
- Sebuah file, dalam hal ini deskriptor protokol dibuat dari file tersebut, yang diharapkan berisi `FileDescriptorSet` yang diserialkan sebagai string. CATATAN: Anda dapat membuat file `descriptor_source` menggunakan opsi `--descriptor_set_out` dan `--include_imports` ke kompiler protokol `protoc`.
- A "byte: //
Kelas Bersarang
kelas | DecodeProto.Opsi | Atribut opsional untuk DecodeProto |
Konstanta
Rangkaian | OP_NAME | Nama operasi ini dikenal dengan mesin inti TensorFlow |
Metode Publik
DecodeProto statis | |
DecodeProto.Options statis | descriptorSource (String descriptorSource) |
DecodeProto.Options statis | format pesan (Format pesan string) |
DecodeProto.Options statis | membersihkan (sanitasi Boolean) |
Keluaran < TInt32 > | ukuran () Tensor int32 dengan bentuk `[batch_shape, len(field_names)]`. |
Daftar< Keluaran <?>> | nilai () Daftar tensor yang berisi nilai untuk bidang terkait. |
Metode Warisan
Konstanta
String akhir statis publik OP_NAME
Nama operasi ini dikenal dengan mesin inti TensorFlow
Metode Publik
public static DecodeProto membuat ( Lingkup cakupan , Operan < TString > byte, String messageType, Daftar<String> Nama bidang, Daftar<Kelas<? extends TType >> tipe keluaran, Opsi... opsi)
Metode pabrik untuk membuat kelas yang membungkus operasi DecodeProto baru.
Parameter
cakupan | ruang lingkup saat ini |
---|---|
byte | Tensor proto berseri dengan bentuk `batch_shape`. |
tipe pesan | Nama jenis pesan proto yang akan didekode. |
Nama bidang | Daftar string yang berisi nama bidang proto. Bidang ekstensi dapat didekodekan dengan menggunakan nama lengkapnya, misalnya EXT_PACKAGE.EXT_FIELD_NAME. |
Tipe keluaran | Daftar tipe TF yang akan digunakan untuk masing-masing bidang di nama_bidang. |
pilihan | membawa nilai atribut opsional |
Kembali
- contoh baru DecodeProto
DecodeProto.Options descriptorSource statis publik (String descriptorSource)
Parameter
deskriptorSumber | Entah nilai khusus `local://` atau jalur ke file yang berisi `FileDescriptorSet` berseri. |
---|
DecodeProto.Options messageFormat statis publik (String messageFormat)
Parameter
format pesan | Baik `biner` atau text . |
---|
DecodeProto.Options sanitasi publik statis (sanitasi Boolean)
Parameter
membersihkan | Apakah akan membersihkan hasilnya atau tidak. |
---|
Output publik < TInt32 > ukuran ()
Tensor int32 dengan bentuk `[batch_shape, len(field_names)]`. Setiap entri adalah jumlah nilai yang ditemukan untuk bidang terkait. Bidang opsional mungkin memiliki nilai 0 atau 1.
Daftar publik< Keluaran <?>> nilai ()
Daftar tensor yang berisi nilai untuk bidang terkait. `values[i]` memiliki tipe data `output_types[i]` dan bentuk `[batch_shape, max(sizes[...,i])]`.