DecodeProto

lớp cuối cùng công khai DecodeProto

Op trích xuất các trường từ thông báo bộ đệm giao thức được tuần tự hóa thành các tensor.

Lệnh `decode_proto` op trích xuất các trường từ thông báo bộ đệm giao thức được tuần tự hóa thành các tensor. Các trường trong `field_names` được giải mã và chuyển đổi thành `output_types` tương ứng nếu có thể.

Bạn phải cung cấp tên `message_type` để cung cấp ngữ cảnh cho tên trường. Bộ mô tả thông báo thực tế có thể được tra cứu trong nhóm bộ mô tả được liên kết hoặc tên tệp do người gọi cung cấp bằng cách sử dụng thuộc tính `descriptor_source`.

Mỗi tensor đầu ra là một tensor dày đặc. Điều này có nghĩa là nó được đệm để chứa số lượng phần tử lặp lại lớn nhất được thấy trong minibatch đầu vào. (Hình dạng cũng được đệm thêm một để tránh kích thước có kích thước bằng 0). Bạn có thể tìm thấy số lần lặp lại thực tế cho từng mẫu trong lô nhỏ ở đầu ra `sizes`. Trong nhiều trường hợp, đầu ra của `decode_proto` được đưa ngay vào tf.squeeze nếu các giá trị bị thiếu không phải là vấn đề đáng lo ngại. Khi sử dụng tf.squeeze, hãy luôn truyền kích thước bóp một cách rõ ràng để tránh những điều bất ngờ.

Đối với hầu hết các phần, việc ánh xạ giữa các loại trường Proto và các loại dtype TensorFlow rất đơn giản. Tuy nhiên có một số trường hợp đặc biệt:

- Trường proto chứa một tin nhắn con hoặc nhóm chỉ có thể được chuyển đổi thành `DT_STRING` (tin nhắn con được tuần tự hóa). Điều này nhằm giảm độ phức tạp của API. Chuỗi kết quả có thể được sử dụng làm đầu vào cho một phiên bản khác của op giải mã_proto.

- TensorFlow thiếu hỗ trợ cho số nguyên không dấu. Các op biểu thị các loại uint64 dưới dạng `DT_INT64` với cùng mẫu bit bổ sung twos (cách hiển nhiên). Các giá trị int32 không dấu có thể được biểu diễn chính xác bằng cách chỉ định loại `DT_INT64` hoặc sử dụng phần bù twos nếu người gọi chỉ định `DT_INT32` trong thuộc tính `output_types`.

Cả tuần tự hóa nguyên mẫu nhị phân và văn bản đều được hỗ trợ và có thể được chọn bằng thuộc tính `format`.

Thuộc tính `descriptor_source` chọn nguồn của bộ mô tả giao thức để tham khảo khi tra cứu `message_type`. Điều này có thể:

- Một chuỗi trống hoặc "local://", trong trường hợp đó các bộ mô tả giao thức được tạo cho các định nghĩa nguyên mẫu C++ (không phải Python) được liên kết với tệp nhị phân.

- Một tệp, trong trường hợp đó các bộ mô tả giao thức được tạo từ tệp, dự kiến ​​sẽ chứa `FileDescriptorSet` được tuần tự hóa dưới dạng một chuỗi. LƯU Ý: Bạn có thể tạo tệp `descriptor_source` bằng cách sử dụng tùy chọn `--descriptor_set_out` và `--include_imports` cho trình biên dịch giao thức `protoc`.

- Một "byte:// ", trong đó các bộ mô tả giao thức được tạo từ ` `, dự kiến ​​sẽ là một `FileDescriptorSet` được tuần tự hóa dưới dạng một chuỗi.

Các lớp lồng nhau

lớp học Giải mãProto.Options Thuộc tính tùy chọn cho DecodeProto

Phương pháp công khai

Bộ giải mã tĩnhProto
tạo ( Phạm vi phạm vi, Toán hạng <String> byte, String messageType, List<String> fieldNames, List<Class<?>> outTypes, Options... tùy chọn)
Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác DecodeProto mới.
DecodeProto.Options tĩnh
descriptorSource (Chuỗi mô tảSource)
DecodeProto.Options tĩnh
messageFormat (Chuỗi tin nhắnFormat)
DecodeProto.Options tĩnh
khử trùng (Khử trùng Boolean)
Đầu ra <Số nguyên>
kích thước ()
Tenor của int32 có hình dạng `[batch_shape, len(field_names)]`.
Danh sách< Đầu ra <?>>
giá trị ()
Danh sách các tensor chứa các giá trị cho trường tương ứng.

Phương pháp kế thừa

Phương pháp công khai

công khai tĩnh DecodeProto tạo ( Phạm vi phạm vi, Toán hạng <String> byte, String messageType, Danh sách<String> tên trường, Danh sách<Class<?>> loại đầu ra, Tùy chọn... tùy chọn)

Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác DecodeProto mới.

Thông số
phạm vi phạm vi hiện tại
byte Tensor của các proto được tuần tự hóa có hình dạng `batch_shape`.
loại tin nhắn Tên của loại tin nhắn nguyên mẫu cần giải mã.
tên trường Danh sách các chuỗi chứa tên trường proto. Trường mở rộng có thể được giải mã bằng cách sử dụng tên đầy đủ của nó, ví dụ: EXT_PACKAGE.EXT_FIELD_NAME.
loại đầu ra Danh sách các loại TF sẽ sử dụng cho trường tương ứng trong field_names.
tùy chọn mang các giá trị thuộc tính tùy chọn
Trả lại
  • một phiên bản mới của DecodeProto

public static DecodeProto.Options descriptorSource (String descriptorSource)

Thông số
nguồn mô tả Giá trị đặc biệt `local://` hoặc đường dẫn đến tệp chứa `FileDescriptorSet` được tuần tự hóa.

public static DecodeProto.Options messageFormat (Chuỗi messageFormat)

Thông số
định dạng tin nhắn `nhị phân` hoặc `văn bản`.

công khai DecodeProto.Options khử trùng (Khử trùng Boolean)

Thông số
vệ sinh Có vệ sinh kết quả hay không.

kích thước đầu ra công khai <Số nguyên> ()

Tenor của int32 có hình dạng `[batch_shape, len(field_names)]`. Mỗi mục nhập là số lượng giá trị được tìm thấy cho trường tương ứng. Các trường tùy chọn có thể có giá trị 0 hoặc 1.

Danh sách công khai < Giá trị đầu ra <?>> ()

Danh sách các tensor chứa các giá trị cho trường tương ứng. `values[i]` có kiểu dữ liệu `output_types[i]` và hình dạng `[batch_shape, max(sizes[...,i])]`.