ดำเนินการคำขอ RPC เป็นชุด
การดำเนินการนี้ดำเนินการคำขอ RPC เดียวหรือชุดคำขอแบบอะซิงโครนัส คำขอ RPC ถูกกำหนดโดยพารามิเตอร์หลักสามตัว:
- `address` (โฮสต์+พอร์ตหรือที่อยู่ BNS ของคำขอ) - `method` (ชื่อวิธี RPC สำหรับการร้องขอ) - `request` (สตริงโปรโตแบบอนุกรมหรือเวกเตอร์ของสตริงของอาร์กิวเมนต์คำขอ RPC) .
ตัวอย่างเช่น หากคุณมีบริการ RPC ที่ทำงานบนพอร์ต localhost:2345 และอินเทอร์เฟซของบริการได้รับการกำหนดค่าด้วยการประกาศโปรโตต่อไปนี้:
service MyService {
rpc MyMethod(MyRequestProto) returns (MyResponseProto) {
};
}address = "localhost:2345"
method = "MyService/MyMethod"
ตัวอย่างเช่น หากต้องการส่ง `MyRequestProto` ที่ว่างเปล่า ให้เรียก op นี้ด้วย `request = ""` หากต้องการส่งคำขอว่าง แบบขนาน 5 รายการ ให้เรียก op นี้ด้วย `request = ["", "", "", "", ""]`
โดยทั่วไป เราสามารถสร้างชุดของโปรโตซีเรียลไลซ์ `MyRequestProto` จากเทนเซอร์แบบแบตช์ปกติโดยใช้ op `encode_proto` และแปลงการตอบสนอง `MyResponseProto` โปรโตซีเรียลไลซ์เป็นเทนเซอร์แบบแบตช์โดยใช้ op `decode_proto`
หมายเหตุ การทำงานกับสตริงโปรโตแบบอนุกรมจะเร็วกว่าการสร้างอินสแตนซ์ออบเจ็กต์โปรโตจริงในหน่วยความจำ ดังนั้นจึงคาดว่าจะไม่ลดประสิทธิภาพลงเมื่อเปรียบเทียบกับการเขียนเคอร์เนลแบบกำหนดเองสำหรับเวิร์กโฟลว์นี้
หากการเชื่อมต่อล้มเหลวหรือผู้ปฏิบัติงานระยะไกลส่งคืนสถานะข้อผิดพลาด op จะเพิ่มข้อยกเว้นนี้ในเครื่อง
ดูการดำเนินการ `TryRpc` หากคุณต้องการจัดการกับความล้มเหลวของ RPC ด้วยตนเองในกราฟ
คลาสที่ซ้อนกัน
| ระดับ | Rpc.ตัวเลือก | แอ็ตทริบิวต์ทางเลือกสำหรับ Rpc | |
ค่าคงที่
| สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow |
วิธีการสาธารณะ
| เอาท์พุต < TString > | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
| Rpc แบบคงที่ | |
| Rpc.Options แบบคงที่ | FailFast (บูลีน FailFast) |
| Rpc.Options แบบคงที่ | โปรโตคอล (โปรโตคอลสตริง) |
| เอาท์พุต < TString > | การตอบสนอง () รูปร่างเดียวกับ 'คำขอ' |
| Rpc.Options แบบคงที่ | timeoutInMs (หมดเวลานานInMs) |
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
เอาท์พุท สาธารณะ < TString > asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
การสร้าง Rpc แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , ตัวดำเนินการ < TString > ที่อยู่, ตัวดำเนินการ < TString > วิธีการ, ตัวดำเนินการ < TString > คำขอ, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ 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' |
|---|
เอาท์พุท สาธารณะ < TString > การตอบสนอง ()
รูปร่างเดียวกับ 'คำขอ' สตริงโปรโตแบบอนุกรม: การตอบสนอง rpc
สาธารณะ Rpc.Options หมดเวลา InMs แบบคงที่ (timeoutInMs ยาว)
พารามิเตอร์
| หมดเวลาในMs | `อินท์`. หากเป็น `0` (ค่าเริ่มต้น) เคอร์เนลจะเรียกใช้คำขอ RPC และหมดเวลาเฉพาะเมื่อพ้นกำหนดเวลา RPC หรือหมดเวลาเซสชันเท่านั้น หากค่านี้มากกว่า `0` op จะเพิ่มข้อยกเว้นหาก RPC ใช้เวลานานกว่า `timeout_in_ms` |
|---|