Wspólne interfejsy API SavedModel dla TF Hub

Wstęp

TensorFlow Hub obsługuje modele do różnych zadań. Modele wykonujące to samo zadanie zachęca się do implementowania wspólnego interfejsu API, aby konsumenci modeli mogli łatwo wymieniać je bez modyfikowania kodu, który je wykorzystuje, nawet jeśli pochodzą od różnych wydawców.

Celem jest sprawienie, aby wymiana różnych modeli dla tego samego zadania była tak prosta, jak przełączanie hiperparametru o wartości łańcuchowej. Dzięki temu konsumenci modeli mogą z łatwością znaleźć ten, który najlepiej rozwiąże ich problem.

Ten katalog gromadzi specyfikacje popularnych API dla modeli w formacie TF2 SavedModel . (Zastępuje wspólne podpisy dla obecnie przestarzałego formatu TF1 Hub .)

SavedModel wielokrotnego użytku: wspólny fundament

Interfejs API SavedModel wielokrotnego użytku definiuje ogólne konwencje dotyczące ładowania SavedModel z powrotem do programu w języku Python i ponownego użycia go jako części większego modelu TensorFlow.

Podstawowe zastosowanie:

obj = hub.load("path/to/model")  # That's tf.saved_model.load() after download.
outputs = obj(inputs, training=False)  # Invokes the tf.function obj.__call__.

W przypadku użytkowników Keras klasa hub.KerasLayer korzysta z tego interfejsu API w celu opakowania zapisanego modelu wielokrotnego użytku jako warstwy Keras (chroniącej użytkowników Keras przed jego szczegółami), z wejściami i wyjściami zgodnie z interfejsami API specyficznymi dla zadania wymienionymi poniżej.

Interfejsy API specyficzne dla zadania

Udoskonalają one interfejs API SavedModel wielokrotnego użytku za pomocą konwencji dla określonych zadań uczenia maszynowego i typów danych.