ConcreteFunction

Fungsi Beton kelas publik

Grafik yang dapat dipanggil sebagai fungsi tunggal, dengan tanda tangan masukan dan keluaran.

Suatu fungsi juga dapat memanggil tf.function yang ditentukan dalam SavedModelBundle .

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

Metode Publik

Tensor
panggilan ( tensor tensor)
Memanggil fungsi dengan satu input dan output.
Peta<String, Tensor >
panggilan (argumen Map<String, Tensor >)
Memanggil suatu fungsi.
ruang kosong
Fungsi Beton statis
buat ( Tanda tangan tanda tangan , Sesi sesi )
Buat fungsi dari tanda tangan dan sesi grafik yang valid.
Fungsi Beton statis
buat (Fungsi<Ops, Tanda Tangan > functionBuilder)
Membuat fungsi dengan membuat grafik baru.
Fungsi Beton statis
buat ( Tanda tangan tanda tangan , Grafik grafik )
Buat fungsi dari tanda tangan dan grafik yang ada.
Grafik
grafik ()
Mengembalikan grafik fungsi ini
ruang kosong
simpan (String eksporDir)
Ekspor fungsi ini sebagai model tersimpan.
Sidang
sesi ()
Mengembalikan sesi yang digunakan untuk mengeksekusi grafik saat memanggil fungsi ini

Secara umum, pengguna tidak perlu menangani sesi suatu fungsi secara langsung dan mengandalkan call(Map) untuk mengeksekusi grafik.

Tanda tangan
tanda tangan ()
Mengembalikan tanda tangan dari fungsi ini
Rangkaian

Metode Warisan

Metode Publik

panggilan Tensor publik ( Tensor Tensor)

Memanggil fungsi dengan satu input dan output.

Penelepon bertanggung jawab untuk menutup semua Tensor.

Parameter
tensor tensor masukan
Kembali
  • tensor keluaran
Melempar
Pengecualian Argumen Ilegal jika ada beberapa parameter input atau output yang ditentukan dalam fungsi

panggilan publik Map<String, Tensor > (argumen Map<String, Tensor >)

Memanggil suatu fungsi.

Penelepon bertanggung jawab untuk menutup semua Tensor.

Parameter
argumen daftar tensor untuk meneruskan input ke fungsi, dipetakan berdasarkan nama tanda tangannya
Kembali
  • tensor keluaran yang dihasilkan dari eksekusi fungsi, dipetakan berdasarkan nama tanda tangannya
Melempar
Pengecualian Argumen Ilegal

penutupan kekosongan publik ()

pembuatan ConcreteFunction statis publik ( Tanda tangan, sesi Sesi )

Buat fungsi dari tanda tangan dan sesi grafik yang valid.

Fungsi tersebut tidak akan memiliki sesi maupun grafiknya, yang berarti masa pakainya dapat melampaui cakupan fungsi tersebut. Oleh karena itu fungsinya tidak perlu ditutup setelah penggunaannya. Misalnya:

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

Parameter
tanda tangan tanda tangan dari fungsi yang akan dibuat
sidang sesi yang valid ke grafik yang diinisialisasi
Kembali
  • fungsi baru

pembuatan ConcreteFunction statis publik (Function<Ops, Signature > functionBuilder)

Membuat fungsi dengan membuat grafik baru.

functionBuilder harus menginisialisasi grafik fungsi dari instance ERROR(/Ops) yang disediakan dan mengembalikan tanda tangan valid yang akan digunakan untuk memasukkan tensor masukan dan mengambil tensor keluaran saat eksekusi.

Fungsi tersebut akan menjadi pemilik grafik baru dan sesi yang dihasilkannya. Oleh karena itu, fungsi tersebut harus diapit dengan benar dengan blok coba-dengan-sumber daya untuk menjamin bahwa semua sumber daya asli akan dibebaskan setelah fungsi tersebut dibuang. Misalnya:

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

Parameter
functionBuilder pembangun fungsi
Kembali
  • fungsi baru

pembuatan ConcreteFunction statis publik ( Tanda tangan, grafik Grafik )

Buat fungsi dari tanda tangan dan grafik yang ada.

Fungsi tersebut akan mempertahankan kepemilikan sesi yang digunakan untuk menjalankan grafik, namun tidak mempertahankan kepemilikan grafik itu sendiri, yang berarti bahwa masa pakai grafik tersebut dapat melampaui cakupan fungsi tersebut. Misalnya:

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

Parameter
tanda tangan tanda tangan dari fungsi yang akan dibuat
grafik grafik yang valid dan diinisialisasi
Kembali
  • fungsi baru

grafik Grafik publik ()

Mengembalikan grafik fungsi ini

penyimpanan kekosongan publik (String eksporDir)

Ekspor fungsi ini sebagai model tersimpan.

Metode ini merupakan pintasan praktis yang setara dengan SavedModel.exporter(exportDir).withFunction(this).export()

Parameter
eksporDir direktori tempat mengekspor model yang disimpan
Melempar
Pengecualian IO jika model yang disimpan atau status variabel tidak dapat ditulis ke disk

sesi Sesi publik ()

Mengembalikan sesi yang digunakan untuk mengeksekusi grafik saat memanggil fungsi ini

Secara umum, pengguna tidak perlu menangani sesi suatu fungsi secara langsung dan mengandalkan call(Map) untuk mengeksekusi grafik. Namun dalam beberapa kasus, akses langsung ke sesi mungkin diperlukan, karena memungkinkan lebih banyak opsi yang berjalan.

Kembali
  • sesi fungsi

tanda tangan publik tanda tangan ()

Mengembalikan tanda tangan dari fungsi ini

String publik keString ()