ConcreteFunction

lớp công khai ConcreteFunction

Một biểu đồ có thể được gọi dưới dạng một hàm duy nhất, có chữ ký đầu vào và đầu ra.

Một hàm cũng có thể gọi một tf.function được xác định trong SavedModelBundle .

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

Phương pháp công khai

Tenxơ
gọi ( tensor tensor)
Gọi một hàm có một đầu vào và đầu ra duy nhất.
Bản đồ<Chuỗi, Tensor >
gọi (Bản đồ<String, Tensor > đối số)
Gọi một hàm.
trống rỗng
đóng ()
hàm bê tông tĩnh
tạo (Chữ ký chữ ký , phiên phiên )
Tạo một hàm từ chữ ký và phiên biểu đồ hợp lệ.
hàm bê tông tĩnh
tạo (Hàm<Ops, Chữ ký > functionBuilder)
Tạo một hàm bằng cách xây dựng một biểu đồ mới.
hàm bê tông tĩnh
tạo (Chữ ký chữ ký , đồ thị đồ thị )
Tạo một hàm từ chữ ký và biểu đồ hiện có.
đồ thị
đồ thị ()
Trả về đồ thị của hàm này
trống rỗng
lưu (Xuất chuỗiDir)
Xuất chức năng này dưới dạng mô hình đã lưu.
Phiên họp
phiên họp ()
Trả về phiên được sử dụng để thực thi biểu đồ khi gọi hàm này

Nói chung, người dùng không cần phải xử lý trực tiếp phiên của một hàm và thay vào đó dựa vào call(Map) để thực thi biểu đồ.

Chữ ký
chữ ký ()
Trả về chữ ký của hàm này
Sợi dây

Phương pháp kế thừa

Phương pháp công khai

cuộc gọi Tensor công khai ( Tensor tensor )

Gọi một hàm có một đầu vào và đầu ra duy nhất.

Người gọi có trách nhiệm đóng tất cả Tensors.

Thông số
tenxơ tensor đầu vào
Trả lại
  • tenxơ đầu ra
Ném
Đối số bất hợp phápNgoại lệ nếu có nhiều tham số đầu vào hoặc đầu ra được xác định trong hàm

public Map<String, Tensor > call (Bản đồ<String, Tensor > đối số)

Gọi một hàm.

Người gọi có trách nhiệm đóng tất cả Tensors.

Thông số
lý lẽ danh sách các tensor để truyền đầu vào cho hàm, được ánh xạ theo tên chữ ký của chúng
Trả lại
  • các tensor đầu ra do việc thực thi hàm, được ánh xạ theo tên chữ ký của chúng
Ném
Đối số bất hợp phápNgoại lệ

đóng khoảng trống công khai ()

public static ConcreteFunction tạo (Chữ ký chữ ký , Phiên phiên )

Tạo một hàm từ chữ ký và phiên biểu đồ hợp lệ.

Hàm sẽ không sở hữu phiên cũng như biểu đồ của nó, nghĩa là thời gian tồn tại của chúng có thể vượt ra ngoài phạm vi của hàm. Do đó, chức năng này không cần phải đóng sau khi sử dụng. Ví dụ:

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
 }
 }

Thông số
chữ ký chữ ký của hàm để tạo
phiên họp một phiên hợp lệ cho một biểu đồ khởi tạo
Trả lại
  • một chức năng mới

tạo ra ConcreteFunction tĩnh công khai (Function<Ops, Signature > functionBuilder)

Tạo một hàm bằng cách xây dựng một biểu đồ mới.

functionBuilder phải khởi tạo biểu đồ hàm từ phiên bản ERROR(/Ops) được cung cấp và trả về một chữ ký hợp lệ sẽ được sử dụng để cung cấp các tensor đầu vào và tìm nạp các tensor đầu ra khi thực thi.

Hàm sẽ là chủ sở hữu của biểu đồ mới và phiên kết quả của nó. Do đó, hàm phải được bao bọc đúng cách bằng khối try-with-resources để đảm bảo rằng tất cả tài nguyên gốc sẽ được giải phóng sau khi hàm bị loại bỏ. Ví dụ:

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());
     }
   }
 }
 }

Thông số
hàmBuilder người xây dựng chức năng
Trả lại
  • chức năng mới

public static ConcreteFunction tạo (Chữ ký chữ ký , Biểu đồ đồ thị )

Tạo một hàm từ chữ ký và biểu đồ hiện có.

Hàm sẽ giữ quyền sở hữu phiên được sử dụng để chạy biểu đồ chứ không phải bản thân biểu đồ, nghĩa là thời gian tồn tại của biểu đồ sau có thể vượt ra ngoài phạm vi của hàm. Ví dụ:

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
 }
 }

Thông số
chữ ký chữ ký của hàm để tạo
đồ thị một biểu đồ hợp lệ và được khởi tạo
Trả lại
  • một chức năng mới

biểu đồ đồ thị công khai ()

Trả về đồ thị của hàm này

lưu khoảng trống công khai (Chuỗi xuấtDir)

Xuất chức năng này dưới dạng mô hình đã lưu.

Phương thức này là lối tắt thuận tiện tương đương với SavedModel.exporter(exportDir).withFunction(this).export()

Thông số
xuấtDir thư mục nơi xuất mô hình đã lưu
Ném
IOException nếu mô hình đã lưu hoặc trạng thái biến không thể ghi vào đĩa

phiên phiên công khai ()

Trả về phiên được sử dụng để thực thi biểu đồ khi gọi hàm này

Nói chung, người dùng không cần phải xử lý trực tiếp phiên của một hàm và thay vào đó dựa vào call(Map) để thực thi biểu đồ. Nhưng trong một số trường hợp, việc truy cập trực tiếp vào phiên có thể cần thiết vì nó cho phép nhiều tùy chọn chạy hơn.

Trả lại
  • phiên chức năng

chữ công khai ()

Trả về chữ ký của hàm này

Chuỗi công khai toString ()