คำเตือน: API นี้เลิกใช้งานแล้วและจะถูกลบออกใน TensorFlow เวอร์ชันในอนาคตหลังจาก การแทนที่ เสถียรแล้ว

DecodeProto

คลาสสุดท้าย DecodeProto

op แยกฟิลด์จากข้อความบัฟเฟอร์โปรโตคอลต่อเนื่องเป็นเทนเซอร์

หมายเหตุ: API นี้ได้รับการออกแบบมาเพื่อให้มีลักษณะมุมฉากมากกว่าเป็นมิตรกับมนุษย์ สามารถใช้เพื่อแยกวิเคราะห์อินพุต protos ด้วยมือ แต่มีไว้สำหรับใช้ในโค้ดที่สร้างขึ้น

ตัวเลือก `decode_proto` จะแยกฟิลด์จากข้อความบัฟเฟอร์โปรโตคอลแบบอนุกรมลงในเทนเซอร์ ฟิลด์ใน "ชื่อฟิลด์" จะถูกถอดรหัสและแปลงเป็น "ประเภทเอาต์พุต" ที่เกี่ยวข้อง หากเป็นไปได้

ต้องระบุชื่อ `message_type' เพื่อให้บริบทสำหรับชื่อฟิลด์ ตัวอธิบายข้อความจริงสามารถค้นหาได้ในพูล descriptor ที่เชื่อมโยงหรือชื่อไฟล์ที่ผู้เรียกให้มาโดยใช้แอตทริบิวต์ `descriptor_source`

เทนเซอร์เอาท์พุตแต่ละตัวเป็นเทนเซอร์แบบหนาแน่น ซึ่งหมายความว่ามีการบุนวมเพื่อให้มีองค์ประกอบที่ซ้ำกันจำนวนมากที่สุดที่เห็นในมินิแบตช์อินพุต (รูปร่างยังเสริมด้วยหนึ่งเพื่อป้องกันขนาดเป็นศูนย์) จำนวนการทำซ้ำจริงสำหรับแต่ละตัวอย่างในมินิแบตช์สามารถพบได้ในเอาต์พุต "ขนาด" ในหลายกรณี เอาต์พุตของ "decode_proto" จะถูกป้อนเข้าสู่ tf.squeeze ทันที หากไม่มีปัญหาเรื่องค่าที่หายไป เมื่อใช้ tf.squeeze ให้ส่งผ่านมิติการบีบอย่างชัดเจนเสมอเพื่อหลีกเลี่ยงความประหลาดใจ

โดยส่วนใหญ่ การแมประหว่างประเภทฟิลด์ Proto และ TensorFlow dtypes นั้นตรงไปตรงมา อย่างไรก็ตาม มีบางกรณีพิเศษ:

- ฟิลด์โปรโตที่มีข้อความย่อยหรือกลุ่มสามารถแปลงเป็น `DT_STRING` เท่านั้น (ข้อความย่อยที่ต่อเนื่องกัน) ซึ่งเป็นการลดความซับซ้อนของ API สตริงผลลัพธ์สามารถใช้เป็นอินพุตไปยังอินสแตนซ์อื่นของ decode_proto op

- TensorFlow ขาดการสนับสนุนสำหรับจำนวนเต็มที่ไม่ได้ลงนาม ops เป็นตัวแทนของประเภท uint64 เป็น `DT_INT64` ที่มีรูปแบบบิตเสริมสองส่วนเหมือนกัน (วิธีที่ชัดเจน) ค่า int32 ที่ไม่ได้ลงนามสามารถแสดงได้โดยการระบุประเภท `DT_INT64` หรือใช้ twos-complement หากผู้เรียกระบุ `DT_INT32' ในแอตทริบิวต์ `output_types`

- ฟิลด์ `แผนที่' ไม่ได้ถูกถอดรหัสโดยตรง จะถือว่าเป็นช่อง "ซ้ำ" ของประเภทรายการที่เหมาะสม โปรโตคอมไพเลอร์กำหนดประเภทรายการสำหรับแต่ละฟิลด์แผนที่ ชื่อประเภทคือชื่อฟิลด์ที่แปลงเป็น "CamelCase" โดยต่อท้าย "Entry" ข้อความ tf.train.Features.FeatureEntry คือตัวอย่างหนึ่งของประเภท "รายการ" โดยนัยเหล่านี้

- ฟิลด์ `enum' ควรอ่านเป็น int32

รองรับการซีเรียลไลซ์เซชันโปรโตแบบไบนารีและข้อความ และสามารถเลือกได้โดยใช้แอตทริบิวต์ "รูปแบบ"

แอตทริบิวต์ "descriptor_source" จะเลือกแหล่งที่มาของตัวอธิบายโปรโตคอลที่ต้องการปรึกษาเมื่อค้นหา "message_type" นี่อาจเป็น:

- สตริงว่างหรือ "local://" ซึ่งในกรณีนี้ตัวบอกโปรโตคอลจะถูกสร้างขึ้นสำหรับคำจำกัดความโปรโต C++ (ไม่ใช่ Python) ที่เชื่อมโยงกับไบนารี

- ไฟล์ ซึ่งในกรณีนี้ protocol descriptor ถูกสร้างขึ้นจากไฟล์ ซึ่งคาดว่าจะมี `FileDescriptorSet' ที่จัดลำดับเป็นสตริง หมายเหตุ: คุณสามารถสร้างไฟล์ "descriptor_source" โดยใช้ตัวเลือก "--descriptor_set_out" และ "--include_imports" ให้กับคอมไพเลอร์โปรโตคอล "protoc"

- เป็น "ไบต์: // " ซึ่งตัวอธิบายโปรโตคอลถูกสร้างขึ้นจาก ` ` ซึ่งคาดว่าจะเป็น 'FileDescriptorSet' ที่จัดลำดับเป็นสตริง

คลาสที่ซ้อนกัน

ระดับ DecodeProto.Options แอ็ตทริบิวต์ทางเลือกสำหรับ DecodeProto

วิธีการสาธารณะ

DecodeProto แบบคงที่
สร้าง ( ขอบเขต ขอบเขต, ตัวถูกดำเนินการ <String> ไบต์, String messageType , List<String> fieldNames, List<Class<?>> outputTypes, Options... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ DecodeProto ใหม่
คงที่ DecodeProto.Options
descriptorSource (สตริง descriptorSource)
คงที่ DecodeProto.Options
messageFormat (รูปแบบข้อความสตริง)
คงที่ DecodeProto.Options
ฆ่าเชื้อ (ฆ่าเชื้อบูลีน)
เอาต์พุต <จำนวนเต็ม>
ขนาด ()
เทนเซอร์ของ int32 ที่มีรูปร่าง `[batch_shape, len(field_names)]`
รายการ< เอาท์พุต <?>>
ค่า ()
รายการเทนเซอร์ที่มีค่าสำหรับฟิลด์ที่เกี่ยวข้อง

วิธีการสืบทอด

วิธีการสาธารณะ

สร้าง DecodeProto แบบคงที่สาธารณะ ( ขอบเขต ขอบเขต, ตัวถูกดำเนินการ <String> ไบต์, ประเภทข้อความสตริง, รายการ<String> fieldNames, รายการ<Class<?>> outputTypes, ตัวเลือก... ตัวเลือก)

วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ DecodeProto ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
ไบต์ เทนเซอร์ของโปรโตแบบต่อเนื่องที่มีรูปร่าง "batch_shape"
ประเภทข้อความ ชื่อของประเภทข้อความโปรโตที่จะถอดรหัส
fieldNames รายการสตริงที่มีชื่อฟิลด์โปรโต ฟิลด์ส่วนขยายสามารถถอดรหัสได้โดยใช้ชื่อเต็ม เช่น EXT_PACKAGE.EXT_FIELD_NAME
outputTypes รายการประเภท TF ที่จะใช้สำหรับฟิลด์ที่เกี่ยวข้องใน field_names
ตัวเลือก ดำเนินการค่าแอตทริบิวต์ทางเลือก
คืนสินค้า
  • ตัวอย่างใหม่ของ DecodeProto

DecodeProto.Options descriptorSource แบบคงที่สาธารณะ (String descriptorSource)

พารามิเตอร์
descriptorSource ค่าพิเศษ "local://" หรือเส้นทางไปยังไฟล์ที่มี "FileDescriptorSet" ที่จัดลำดับ

สาธารณะแบบคงที่ DecodeProto.Options messageFormat (สตริง messageFormat)

พารามิเตอร์
รูปแบบข้อความ ไม่ว่าจะเป็น "ไบนารี" หรือ text

DecodeProto.Options แบบคงที่สาธารณะ ( ฆ่าเชื้อ บูลีน)

พารามิเตอร์
ฆ่าเชื้อ ไม่ว่าจะฆ่าเชื้อผลหรือไม่

ขนาด เอาต์พุต สาธารณะ <จำนวนเต็ม> ()

เทนเซอร์ของ int32 ที่มีรูปร่าง `[batch_shape, len(field_names)]` แต่ละรายการคือจำนวนค่าที่พบในฟิลด์ที่เกี่ยวข้อง ฟิลด์ตัวเลือกอาจมีค่า 0 หรือ 1

รายการสาธารณะ < ผลลัพธ์ <?>> ค่า ()

รายการเทนเซอร์ที่มีค่าสำหรับฟิลด์ที่เกี่ยวข้อง `values[i]` มีประเภทข้อมูล `output_types[i]` และรูปร่าง `[batch_shape, max(sizes[...,i])]`