ConcreteFunction

публичный класс ConcreteFunction

График, который можно вызвать как одну функцию с входной и выходной сигнатурой.

Функция также может вызывать функцию tf.function, определенную в SavedModelBundle .

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

Публичные методы

Тензор
вызов ( Тензорный тензор )
Вызывает функцию с одним входом и выходом.
Карта<Строка, Тензор >
вызов (Аргументы Map<String, Tensor >)
Вызывает функцию.
пустота
статическая конкретная функция
создать (подпись подписи , сеанс сеанса)
Создайте функцию на основе подписи и действительного сеанса графа.
статическая конкретная функция
создать (Function<Ops, Signature > functionBuilder)
Создает функцию путем построения нового графика.
статическая конкретная функция
создать (подпись подписи , график графика)
Создайте функцию на основе сигнатуры и существующего графика.
График
график ()
Возвращает график этой функции
пустота
сохранить (StringexportDir)
Экспортируйте эту функцию как сохраненную модель.
Сессия
сеанс ()
Возвращает сеанс, используемый для выполнения графика при вызове этой функции.

В общем, пользователю не нужно напрямую обрабатывать сеанс функции и вместо этого полагаться на call(Map) для выполнения графа.

Подпись
подпись ()
Возвращает подпись этой функции
Нить

Унаследованные методы

Публичные методы

публичный вызов Tensor ( тензор тензора)

Вызывает функцию с одним входом и выходом.

Вызывающая сторона отвечает за закрытие всех тензоров.

Параметры
тензор входной тензор
Возврат
  • выходной тензор
Броски
IllegalArgumentException если в функции определено несколько входных или выходных параметров

общедоступный вызов Map<String, Tensor > (аргументы Map<String, Tensor >)

Вызывает функцию.

Вызывающая сторона отвечает за закрытие всех тензоров.

Параметры
аргументы список тензоров для передачи в функцию, сопоставленный с их сигнатурным именем
Возврат
  • выходные тензоры, возникающие в результате выполнения функции, сопоставленные с их сигнатурным именем
Броски
IllegalArgumentException

public void закрыть ()

public static ConcreteFunction create ( подпись подписи , сеанс сеанса)

Создайте функцию на основе подписи и действительного сеанса графа.

Функция не будет владеть ни сеансом, ни его графиком, а это означает, что их время жизни может выходить за рамки функции. Поэтому функцию не нужно закрывать после ее использования. Например:

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

Параметры
подпись подпись функции для создания
сессия действительный сеанс для инициализированного графа
Возврат
  • новая функция

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

Создает функцию путем построения нового графика.

functionBuilder должен инициализировать граф функции из предоставленного экземпляра ERROR(/Ops) и вернуть действительную подпись, которая будет использоваться для подачи входных тензоров и получения выходных тензоров при выполнении.

Функция будет владельцем нового графика и его результирующего сеанса. Следовательно, функция должна быть правильно заключена в блок try-with-resources, чтобы гарантировать, что все собственные ресурсы будут освобождены после отмены функции. Например:

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

Параметры
functionBuilder конструктор функций
Возврат
  • новая функция

public static ConcreteFunction create ( подпись подписи , график графика)

Создайте функцию из сигнатуры и существующего графика.

Функция сохранит право собственности на сеанс, используемый для запуска графа, но не на сам граф, а это означает, что время жизни последнего может выходить за рамки функции. Например:

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

Параметры
подпись подпись функции для создания
график действительный и инициализированный граф
Возврат
  • новая функция

граф публичного графика ()

Возвращает график этой функции

общедоступное недействительное сохранение (String ExportDir)

Экспортируйте эту функцию как сохраненную модель.

Этот метод представляет собой удобный ярлык, эквивалентный SavedModel.exporter(exportDir).withFunction(this).export()

Параметры
каталог экспорта каталог, куда экспортировать сохраненную модель
Броски
Исключение IO если сохраненное состояние модели или переменной не может быть записано на диск

сеанс публичной сессии ()

Возвращает сеанс, используемый для выполнения графика при вызове этой функции.

В общем, пользователю не нужно напрямую обрабатывать сеанс функции и вместо этого полагаться на call(Map) для выполнения графа. Но в некоторых случаях может потребоваться прямой доступ к сеансу, поскольку он предоставляет больше возможностей запуска.

Возврат
  • сеанс функции

публичная подпись подпись ()

Возвращает подпись этой функции

публичная строка toString ()