RPC

Rpc คลาสสุดท้ายสาธารณะ

ดำเนินการคำขอ RPC เป็นชุด

การดำเนินการนี้ดำเนินการคำขอ RPC เดียวหรือชุดคำขอแบบอะซิงโครนัส คำขอ RPC ถูกกำหนดโดยพารามิเตอร์หลักสามตัว:

- `address` (โฮสต์+พอร์ตหรือที่อยู่ BNS ของคำขอ) - `method` (ชื่อวิธี RPC สำหรับการร้องขอ) - `request` (สตริงโปรโตแบบอนุกรมหรือเวกเตอร์ของสตริงของอาร์กิวเมนต์คำขอ RPC) .

ตัวอย่างเช่น หากคุณมีบริการ RPC ที่ทำงานบนพอร์ต localhost:2345 และอินเทอร์เฟซได้รับการกำหนดค่าด้วยการประกาศโปรโตต่อไปนี้:

service MyService {
   rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
   
 };
 }
จากนั้นเรียก op นี้พร้อมกับอาร์กิวเมนต์:
address = "localhost:2345"
 method = "MyService/MyMethod"
 
นเซอร์ `คำขอ` คือเทนเซอร์สตริงที่แสดงถึง สตริง `MyRequestProto` ที่ต่อเนื่องกัน และเทนเซอร์สตริงเอาท์พุต `response` จะมีรูปร่างเหมือนกันและมี (เมื่อเสร็จสิ้นสำเร็จ) สตริง `MyResponseProto` ที่เป็นอนุกรมที่สอดคล้องกัน

ตัวอย่างเช่น หากต้องการส่ง `MyRequestProto` ที่ว่างเปล่า ให้เรียก op นี้ด้วย `request = ""` หากต้องการส่งคำขอว่าง แบบขนาน 5 รายการ ให้เรียก op นี้ด้วย `request = ["", "", "", "", ""]`

โดยทั่วไป เราสามารถสร้างชุดของโปรโตซีเรียลไลซ์ `MyRequestProto` จากเทนเซอร์แบบแบตช์ปกติโดยใช้ op `encode_proto` และแปลงการตอบสนอง `MyResponseProto` โปรโตซีเรียลไลซ์เป็นเทนเซอร์แบบแบตช์โดยใช้ op `decode_proto`

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

หากการเชื่อมต่อล้มเหลวหรือผู้ปฏิบัติงานระยะไกลส่งคืนสถานะข้อผิดพลาด op จะเพิ่มข้อยกเว้นนี้ในเครื่อง

ดูการดำเนินการ `TryRpc` หากคุณต้องการจัดการกับความล้มเหลวของ RPC ด้วยตนเองในกราฟ

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

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

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

เอาท์พุต <สตริง>
เป็นเอาท์พุต ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
Rpc แบบคงที่
สร้าง (ขอบเขต ขอบเขต ที่อยู่ตัว ดำเนินการ <String> ตัว ถูกดำเนินการ <String> วิธีการ คำขอ ตัวถูกดำเนินการ <String> ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Rpc ใหม่
Rpc.Options แบบคงที่
FailFast (บูลีน FailFast)
Rpc.Options แบบคงที่
โปรโตคอล (โปรโตคอลสตริง)
เอาท์พุต <สตริง>
การตอบสนอง ()
รูปร่างเดียวกับ 'คำขอ'
Rpc.Options แบบคงที่
timeoutInMs (หมดเวลานานInMs)

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

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

สาธารณะ เอาท์พุท <String> asOutput ()

ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์

อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต

การสร้าง Rpc แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , ที่อยู่ Operand <String>, วิธีการ Operand <String>, คำขอ Operand <String>, ตัวเลือก... ตัวเลือก)

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

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
ที่อยู่ `0-D` หรือ `1-D` ที่อยู่ (เช่น host_name:port) ของเซิร์ฟเวอร์ RPC หากเทนเซอร์นี้มีมากกว่า 1 องค์ประกอบ ระบบจะส่งคำขอ rpc แบบขนานหลายรายการ อาร์กิวเมนต์นี้ออกอากาศด้วย 'วิธีการ' และ 'คำขอ'
วิธี `0-D` หรือ `1-D` ที่อยู่วิธีการบนเซิร์ฟเวอร์ RPC หากเทนเซอร์นี้มีมากกว่า 1 องค์ประกอบ ระบบจะส่งคำขอ rpc แบบขนานหลายรายการ อาร์กิวเมนต์นี้ออกอากาศด้วย 'ที่อยู่' และ 'คำขอ'
ขอ `0-D` หรือ `1-D` สตริงโปรโตแบบอนุกรม: อาร์กิวเมนต์คำขอ rpc หากเทนเซอร์นี้มีมากกว่า 1 องค์ประกอบ ระบบจะส่งคำขอ rpc แบบขนานหลายรายการ อาร์กิวเมนต์นี้ออกอากาศด้วย 'ที่อยู่' และ 'วิธีการ'
ตัวเลือก มีค่าแอตทริบิวต์ทางเลือก
การส่งคืน
  • อินสแตนซ์ใหม่ของ Rpc

Rpc.Options คงที่สาธารณะ ล้มเหลวอย่างรวดเร็ว (บูลีนล้มเหลวเร็ว)

พารามิเตอร์
ล้มเหลวเร็ว 'บูลีน'. หากเป็น "จริง" (ค่าเริ่มต้น) ความล้มเหลวในการเชื่อมต่อ (เช่น เซิร์ฟเวอร์ไม่ตอบสนองในทันที) จะทำให้ RPC ล้มเหลว

โปรโตคอล Rpc.Options สาธารณะแบบคงที่ (โปรโตคอลสตริง)

พารามิเตอร์
มาตรการ โปรโตคอล RPC ที่จะใช้ สตริงว่างหมายถึงใช้โปรโตคอลเริ่มต้น ตัวเลือกรวมถึง 'grpc'

การตอบสนอง เอาท์พุท สาธารณะ <String> ()

รูปร่างเดียวกับ 'คำขอ' สตริงโปรโตแบบอนุกรม: การตอบสนอง rpc

สาธารณะ Rpc.Options หมด เวลา InMs แบบคงที่ (timeoutInMs ยาว)

พารามิเตอร์
หมดเวลาในMs `อินท์`. หากเป็น `0` (ค่าเริ่มต้น) เคอร์เนลจะเรียกใช้คำขอ RPC และหมดเวลาเฉพาะเมื่อพ้นกำหนดเวลา RPC หรือหมดเวลาเซสชันเท่านั้น หากค่านี้มากกว่า `0` op จะเพิ่มข้อยกเว้นหาก RPC ใช้เวลานานกว่า `timeout_in_ms`