ConcreteFunction

ConcreteFunction คลาสสาธารณะ

กราฟที่สามารถเรียกใช้เป็นฟังก์ชันเดียวพร้อมลายเซ็นอินพุตและเอาต์พุต

ฟังก์ชั่นยังสามารถเรียกใช้ tf.function ที่กำหนดไว้ใน SavedModelBundle

ConcreteFunction myFunction = savedModelBundle.function("myFunctionSignatureName");
 Map<String, Tensor> outputTensorMap = myFunction.call(inputTensorMap);
 

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

เทนเซอร์
โทร ( เทนเซอร์ เทนเซอร์)
เรียกใช้ฟังก์ชันที่มีอินพุตและเอาต์พุตเดียว
แผนที่<สตริง เทนเซอร์ >
โทร (แผนที่ <สตริง, เทนเซอร์ > อาร์กิวเมนต์)
เรียกใช้ฟังก์ชัน
เป็นโมฆะ
ฟังก์ชั่นคอนกรีต คงที่
สร้าง (ลายเซ็นลาย เซ็น , เซสชัน เซสชัน)
สร้างฟังก์ชันจากลายเซ็นและเซสชันกราฟที่ถูกต้อง
ฟังก์ชั่นคอนกรีต คงที่
สร้าง (ฟังก์ชัน <Ops, ลายเซ็น > functionBuilder)
สร้างฟังก์ชันโดยการสร้างกราฟใหม่
ฟังก์ชั่นคอนกรีต คงที่
สร้าง (ลายเซ็น ลายเซ็น , กราฟ กราฟ )
สร้างฟังก์ชันจากลายเซ็นและกราฟที่มีอยู่
กราฟ
กราฟ ()
ส่งกลับกราฟของฟังก์ชันนี้
เป็นโมฆะ
บันทึก (สตริงส่งออกDir)
ส่งออกฟังก์ชันนี้เป็นโมเดลที่บันทึกไว้
การประชุม
การประชุม ()
ส่งคืนเซสชันที่ใช้ในการรันกราฟเมื่อเรียกใช้ฟังก์ชันนี้

โดยทั่วไป ผู้ใช้ไม่จำเป็นต้องจัดการเซสชันของฟังก์ชันโดยตรงและอาศัย call(Map) เพื่อดำเนินการกราฟแทน

ลายเซ็น
ลายเซ็น ()
ส่งกลับลายเซ็นของฟังก์ชันนี้
สตริง

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

บูลีน
เท่ากับ (วัตถุ arg0)
คลาสสุดท้าย<?>
รับคลาส ()
ภายใน
แฮชโค้ด ()
โมฆะสุดท้าย
แจ้ง ()
โมฆะสุดท้าย
แจ้งทั้งหมด ()
สตริง
toString ()
โมฆะสุดท้าย
รอสักครู่ (ยาว arg0, int arg1)
โมฆะสุดท้าย
รอ (ยาว arg0)
โมฆะสุดท้าย
รอ ()
ความว่างเปล่าที่เป็นนามธรรม
ปิด ()

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

การเรียก เทนเซอร์ สาธารณะ ( เทน เซอร์ เทนเซอร์)

เรียกใช้ฟังก์ชันที่มีอินพุตและเอาต์พุตเดียว

ผู้โทรมีหน้าที่ปิดเทนเซอร์ทั้งหมด

พารามิเตอร์
เทนเซอร์ เทนเซอร์อินพุต
การส่งคืน
  • เทนเซอร์เอาท์พุต
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย หากมีพารามิเตอร์อินพุตหรือเอาต์พุตหลายตัวที่กำหนดไว้ในฟังก์ชัน

แผนที่สาธารณะ <สตริง, เทนเซอร์ > โทร (อาร์กิวเมนต์แผนที่ <สตริง, เทนเซอร์ >)

เรียกใช้ฟังก์ชัน

ผู้โทรมีหน้าที่ปิดเทนเซอร์ทั้งหมด

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

โมฆะสาธารณะ ปิด ()

สร้าง ConcreteFunction สาธารณะแบบคงที่ (ลาย เซ็นลายเซ็น , เซสชัน เซสชัน)

สร้างฟังก์ชันจากลายเซ็นและเซสชันกราฟที่ถูกต้อง

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

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (Session s = new Session(g)) {
     // Auto-closing the function just as an example but this is not required since it has
     // no effect
     try (ConcreteFunction f = ConcreteFunction.create(signature, s);
         TFloat32 t = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     
     // Session s is still valid at this point
   }
   // Graph g is still valid at this point
 }
 }

พารามิเตอร์
ลายเซ็น ลายเซ็นของฟังก์ชันที่จะสร้าง
การประชุม เซสชันที่ถูกต้องกับกราฟเริ่มต้น
การส่งคืน
  • ฟังก์ชั่นใหม่

สร้าง ConcreteFunction สาธารณะแบบคงที่ (ฟังก์ชัน <Ops, ลายเซ็น > functionBuilder)

สร้างฟังก์ชันโดยการสร้างกราฟใหม่

functionBuilder ต้องเริ่มต้นกราฟฟังก์ชันจากอินสแตนซ์ ERROR(/Ops) ที่ให้มา และส่งคืนลายเซ็นที่ถูกต้องซึ่งจะใช้ในการป้อนเทนเซอร์อินพุตและดึงเทนเซอร์เอาท์พุตในการดำเนินการ

ฟังก์ชันจะเป็นเจ้าของกราฟใหม่และเซสชันผลลัพธ์ ดังนั้น ฟังก์ชันจะต้องถูกล้อมรอบอย่างถูกต้องด้วยบล็อก try-with-resources เพื่อรับประกันว่าทรัพยากรดั้งเดิมทั้งหมดจะถูกปล่อยว่างเมื่อฟังก์ชันถูกละทิ้ง ตัวอย่างเช่น:

public class MyModel {

   public static Signature addTwo(Ops tf) {
     Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
     Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
     return Signature.builder("addTwo").input("x", input).output("y", output).build();
   

   public static void main(String args[]) {
     try (ConcreteFunction function = ConcreteFunction.create(MyModel::addTwo);
         TFloat32 x = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     }
   }
 }
 }

พารามิเตอร์
ฟังก์ชั่นBuilder ตัวสร้างฟังก์ชัน
การส่งคืน
  • ฟังก์ชั่นใหม่

สร้าง ConcreteFunction สาธารณะแบบคงที่ (ลายเซ็น ลายเซ็น , กราฟ กราฟ )

สร้างฟังก์ชันจากลายเซ็นและกราฟที่มีอยู่

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

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (ConcreteFunction f = ConcreteFunction.create(signature, g);
       TFloat32 x = TFloat32.scalarOf(2.0f)) {
     assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
   
   // Graph g is still valid at this point
 }
 }

พารามิเตอร์
ลายเซ็น ลายเซ็นของฟังก์ชันที่จะสร้าง
กราฟ กราฟที่ถูกต้องและเริ่มต้น
การส่งคืน
  • ฟังก์ชั่นใหม่

กราฟ กราฟ สาธารณะ ()

ส่งกลับกราฟของฟังก์ชันนี้

บันทึก โมฆะสาธารณะ (String ExportDir)

ส่งออกฟังก์ชันนี้เป็นโมเดลที่บันทึกไว้

วิธีนี้เป็นทางลัดที่สะดวกเทียบเท่ากับ SavedModel.exporter(exportDir).withFunction(this).export()

พารามิเตอร์
ส่งออกDir ไดเร็กทอรีที่จะส่งออกโมเดลที่บันทึกไว้
ขว้าง
IOข้อยกเว้น หากไม่สามารถเขียนโมเดลหรือสถานะตัวแปรที่บันทึกไว้บนดิสก์ได้

เซ สชั่น สาธารณะ ()

ส่งคืนเซสชันที่ใช้ในการรันกราฟเมื่อเรียกใช้ฟังก์ชันนี้

โดยทั่วไป ผู้ใช้ไม่จำเป็นต้องจัดการเซสชันของฟังก์ชันโดยตรงและอาศัย call(Map) เพื่อดำเนินการกราฟแทน แต่ในบางกรณี อาจจำเป็นต้องเข้าถึงเซสชันโดยตรง เนื่องจากจะทำให้มีทางเลือกในการรันมากขึ้น

การส่งคืน
  • เซสชั่นการทำงาน

ลาย เซ็นสาธารณะ ลายเซ็น ()

ส่งกลับลายเซ็นของฟังก์ชันนี้

สตริงสาธารณะ toString ()