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 | |
Peta<String, Tensor > | |
ruang kosong | menutup () |
Fungsi Beton statis | buat ( Tanda tangan tanda tangan , Sesi sesi ) Buat fungsi dari tanda tangan dan sesi grafik yang valid. |
Fungsi Beton statis | |
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 | |
Tanda tangan | tanda tangan () Mengembalikan tanda tangan dari fungsi ini |
Rangkaian | keString () |
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 try-with-resources 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, tetapi 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
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 berjalan.
Kembali
- sesi fungsi