ConcreteFunction

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

สร้าง 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 ()