ConcreteFunction

genel sınıf ConcreteFunction

Giriş ve çıkış imzasıyla tek bir işlev olarak çağrılabilen bir grafik.

Bir işlev aynı zamanda SavedModelBundle içinde tanımlanan bir tf.function öğesini de çağırabilir.

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

Genel Yöntemler

Tensör
çağrı ( Tensör tensörü)
Tek giriş ve çıkışa sahip bir işlevi çağırır.
Harita<Dize, Tensör >
çağrı (Map<String, Tensor > argümanlar)
Bir işlevi çağırır.
geçersiz
Statik BetonFonksiyonu
oluştur ( İmza imzası, Oturum oturumu)
Bir imzadan ve geçerli bir grafik oturumundan bir işlev oluşturun.
Statik BetonFonksiyonu
create (Function<Ops, Signature > functionBuilder)
Yeni bir grafik oluşturarak bir fonksiyon oluşturur.
Statik BetonFonksiyonu
oluştur ( İmza imzası, Grafik grafiği)
Bir imzadan ve mevcut bir grafikten bir işlev oluşturun.
Grafik
grafik ()
Bu fonksiyonun grafiğini döndürür
geçersiz
kaydet (Dize dışa aktarmaDir)
Bu işlevi kaydedilmiş bir model olarak dışa aktarın.
Oturum
oturum ()
Bu işlevi çağırırken grafiği yürütmek için kullanılan oturumu döndürür

Genel olarak, kullanıcının doğrudan bir işlevin oturumunu yönetmesi ve bunun yerine grafiği yürütmek için call(Map) işlevini kullanması gerekmez.

İmza
imza ()
Bu işlevin imzasını döndürür
Sicim

Kalıtsal Yöntemler

Genel Yöntemler

genel Tensör çağrısı ( Tensör tensörü)

Tek giriş ve çıkışa sahip bir işlevi çağırır.

Arayan tüm Tensörlerin kapatılmasından sorumludur.

Parametreler
tensör giriş tensörü
İade
  • çıkış tensörü
Atar
YasadışıTartışmaİstisna işlevde tanımlanmış birden fazla giriş veya çıkış parametresi varsa

genel Harita<String, Tensor > çağrısı (Map<String, Tensor > argümanlar)

Bir işlevi çağırır.

Arayan tüm Tensörlerin kapatılmasından sorumludur.

Parametreler
argümanlar İmza adlarıyla eşlenen, işleve girdi olarak aktarılacak tensörlerin listesi
İade
  • işlevin yürütülmesinden kaynaklanan, imza adlarıyla eşlenen çıktı tensörleri
Atar
YasadışıTartışmaİstisna

genel boşluk kapat ()

public static ConcreteFunction create ( İmza imzası , Oturum oturumu )

Bir imzadan ve geçerli bir grafik oturumundan bir işlev oluşturun.

İşlev, oturumun veya grafiğinin sahibi olmayacaktır; bu, bunların yaşam sürelerinin işlevin kapsamının dışına çıkabileceği anlamına gelir. Bu nedenle fonksiyonun kullanımından sonra kapatılmasına gerek yoktur. Örneğin:

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

Parametreler
imza oluşturulacak fonksiyonun imzası
oturum başlatılan bir grafiğe geçerli bir oturum
İade
  • yeni bir işlev

public static ConcreteFunction create (Function<Ops, Signature > functionBuilder)

Yeni bir grafik oluşturarak bir fonksiyon oluşturur.

functionBuilder fonksiyon grafiğini sağlanan ERROR(/Ops) örneğinden başlatmalı ve giriş tensörlerini beslemek ve yürütme sırasında çıkış tensörlerini getirmek için kullanılacak geçerli bir imza döndürmelidir.

İşlev, yeni grafiğin ve onun ortaya çıkan oturumunun sahibi olacaktır. Bu nedenle, işlev atıldıktan sonra tüm yerel kaynakların serbest bırakılacağını garanti etmek için işlevin bir try-with-resources bloğuyla düzgün bir şekilde kapatılması gerekir. Örneğin:

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

Parametreler
fonksiyonBuilder fonksiyon oluşturucu
İade
  • yeni fonksiyon

public static ConcreteFunction create ( İmza imzası, Grafik grafiği)

Bir imzadan ve mevcut bir grafikten bir işlev oluşturun.

İşlev, grafiğin kendisini değil, grafiği çalıştırmak için kullanılan oturumun sahipliğini korur; bu, grafiğin ömrünün işlevin kapsamının dışına çıkabileceği anlamına gelir. Örneğin:

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

Parametreler
imza oluşturulacak fonksiyonun imzası
grafik geçerli ve başlatılmış bir grafik
İade
  • yeni bir işlev

genel Grafik grafiği ()

Bu fonksiyonun grafiğini döndürür

genel geçersiz kaydetme (Dize ihracatDir)

Bu işlevi kaydedilmiş bir model olarak dışa aktarın.

Bu yöntem SavedModel.exporter(exportDir).withFunction(this).export() yöntemine eşdeğer kullanışlı bir kısayoldur.

Parametreler
ihracatDizini kaydedilen modelin dışa aktarılacağı dizin
Atar
IOİstisnası kayıtlı model veya değişken durumu diske yazılamıyorsa

herkese açık Oturum oturumu ()

Bu işlevi çağırırken grafiği yürütmek için kullanılan oturumu döndürür

Genel olarak, kullanıcının doğrudan bir işlevin oturumunu yönetmesi ve bunun yerine grafiği yürütmek için call(Map) işlevini kullanması gerekmez. Ancak bazı durumlarda, daha fazla çalıştırma seçeneğine izin verdiği için oturuma doğrudan erişim gerekli olabilir.

İade
  • işlev oturumu

genel İmza imza ( )

Bu işlevin imzasını döndürür

public String toString ()