InterpreterApi

อินเทอร์เฟซสาธารณะ InterpreterApi
คลาสย่อยโดยอ้อมที่รู้จัก

อินเทอร์เฟซกับอินเทอร์พรีเตอร์โมเดล TensorFlow Lite ไม่รวมวิธีการทดลอง

อินสแตนซ์ InterpreterApi จะสรุปโมเดล TensorFlow Lite ที่ฝึกล่วงหน้า โดยที่ จะดำเนินการสำหรับการอนุมานโมเดล

ตัวอย่างเช่น หากโมเดลรับอินพุตเพียง 1 อินพุตและแสดงผลเพียง 1 เอาต์พุต

try (InterpreterApi interpreter =
     new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
   interpreter.run(input, output);
 }
 

หากโมเดลมีอินพุตหรือเอาต์พุตหลายรายการ ให้ทำดังนี้

Object[] inputs = {input0, input1, ...};
 Map<Integer, Object> map_of_indices_to_outputs = new HashMap<>();
 FloatBuffer ith_output = FloatBuffer.allocateDirect(3 * 2 * 4);  // Float tensor, shape 3x2x4.
 ith_output.order(ByteOrder.nativeOrder());
 map_of_indices_to_outputs.put(i, ith_output);
 try (InterpreterApi interpreter =
     new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(inputs, map_of_indices_to_outputs);
 }
 

หากโมเดลใช้หรือสร้าง Tensor สตริง ให้ทำดังนี้

String[] input = {"foo", "bar"};  // Input tensor shape is [2].
 String[][] output = new String[3][2];  // Output tensor shape is [3, 2].
 try (InterpreterApi interpreter =
     new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(input, output);
 }
 

โปรดทราบว่ารูปร่าง [] และรูปร่าง[1] มีความแตกต่าง สำหรับ Tensor สตริงสเกลาร์ เอาต์พุต:

String[] input = {"foo"};  // Input tensor shape is [1].
 ByteBuffer outputBuffer = ByteBuffer.allocate(OUTPUT_BYTES_SIZE);  // Output tensor shape is [].
 try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(input, outputBuffer);
 }
 byte[] outputBytes = new byte[outputBuffer.remaining()];
 outputBuffer.get(outputBytes);
 // Below, the `charset` can be StandardCharsets.UTF_8.
 String output = new String(outputBytes, charset);
 

ระบบจะกำหนดลำดับของอินพุตและเอาต์พุตเมื่อแปลงโมเดล TensorFlow เป็น TensorFlowLite โมเดลที่มี Toco และมีรูปแบบเริ่มต้นของอินพุต

เมื่อมีการระบุอินพุตเป็นอาร์เรย์ (หลายมิติ) Tensor อินพุตที่เกี่ยวข้องจะ ปรับขนาดได้ตามรูปร่างของอาร์เรย์นั้นโดยปริยาย เมื่อระบุอินพุตเป็นประเภท Buffer ระบบจะไม่ปรับขนาดโดยนัย ผู้โทรต้องตรวจสอบให้แน่ใจว่าขนาด Buffer ไบต์ตรงกับของ Tensor ที่ตรงกันหรือรายการแรก ปรับขนาด Tensor ผ่าน resizeInput(int, int[]) ข้อมูลรูปร่างและประเภท Tensor สามารถเป็นได้ ได้รับผ่านชั้นเรียน Tensor ซึ่งมีให้บริการผ่าน getInputTensor(int) และ getOutputTensor(int)

คำเตือน:InterpreterApi อินสแตนซ์ไม่ปลอดภัยของชุดข้อความ

คำเตือน: อินสแตนซ์ InterpreterApi เป็นเจ้าของทรัพยากรที่ต้อง ว่างอย่างชัดเจนโดยการเรียกใช้ close()

ไลบรารี TFLite สร้างขึ้นโดยเทียบกับ NDK API 19 โดยอาจใช้งานได้สำหรับ Android API ระดับต่ำกว่า 19 แต่ไม่มีการรับประกัน

ชั้นเรียนที่ซ้อนกัน

คลาส InterpreterApi.Options คลาสตัวเลือกสำหรับการควบคุมลักษณะการทำงานของล่ามรันไทม์

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

นามธรรม เป็นโมฆะ
allocateTensors()
อัปเดตการจัดสรรสำหรับ Tensor ทั้งหมดอย่างชัดแจ้ง หากจำเป็น
นามธรรม เป็นโมฆะ
close()
ปล่อยทรัพยากรที่เชื่อมโยงกับอินสแตนซ์ InterpreterApi
คงที่ InterpreterApi
create(ตัวเลือก File modelFile, InterpreterApi.Options)
สร้างอินสแตนซ์ InterpreterApi โดยใช้โมเดลและตัวเลือกที่ระบุ
คงที่ InterpreterApi
create(ตัวเลือก ByteBuffer bytesBuffer,