Konfiguracja analizy modelu Tensorflow

Konfiguracja

TFMA przechowuje swoją konfigurację w proto , który jest serializowany do JSON. To proto konsoliduje konfigurację wymaganą dla danych wejściowych, danych wyjściowych, specyfikacji modelu, specyfikacji metrycznych i specyfikacji krojenia.

Wszystkie rurociągi TFMA są powiązane z modelem bazowym (pierwotnym) i zerowym lub większą liczbą modeli kandydujących (wtórnych). Model bazowy i model potencjalny są definiowane przez użytkownika na początku potoku i każdy wymaga unikatowej nazwy. Poniżej znajdują się przykłady typowych ustawień konfiguracyjnych, z których może skorzystać użytkownik:

  • Ocena pojedynczego modelu:
    • N/A (tj. bez nazwy)
  • Ocena oparta na walidacji:
    • baseline
    • candidate
  • Ocena porównania modeli:
    • my_model_a
    • my_model_b

Specyfikacje modelu

Specyfikacje modelu są typu tfma.ModelSpec i służą do definiowania lokalizacji modelu, a także innych parametrów specyficznych dla modelu. Na przykład poniżej znajdują się typowe ustawienia, które należy skonfigurować przed uruchomieniem oceny:

  • name - nazwa modelu (jeśli używanych jest wiele modeli)
  • signature_name - nazwa sygnatury używana do predykcji (domyślnie jest to serving_default ). Użyj eval jeśli używasz EvalSavedModel.
  • label_key - nazwa cechy powiązanej z etykietą.
  • example_weight_key - nazwa cechy powiązana z przykładową wagą.

Specyfikacje metryk

Specyfikacje metryk są typu tfma.MetricsSpec i służą do konfigurowania metryk, które będą obliczane w ramach oceny. Różne problemy związane z uczeniem maszynowym wykorzystują różne typy metryk, a TFMA oferuje wiele opcji konfigurowania i dostosowywania obliczanych metryk. Ponieważ metryki stanowią bardzo dużą część TFMA, zostały szczegółowo omówione osobno w metrykach .

Specyfikacje krojenia

Specyfikacje krojenia są typu tfma.SlicingSpec i służą do konfigurowania kryteriów plasterków, które będą używane podczas oceny. Krojenie można wykonać za pomocą feature_keys , feature_values lub obu. Oto kilka przykładów specyfikacji krojenia:

  • {}
    • Wycinek składający się z danych ogólnych.
  • { feature_keys: ["country"] }
    • Wycinki dla wszystkich wartości w funkcji „kraj”. Na przykład możemy otrzymać plasterki „kraj:nas”, „kraj:jp” itp.
  • { feature_values: [{key: "country", value: "us"}] }
    • Kawałek składający się z „kraju:nas”.
  • { feature_keys: ["country", "city"] }
    • Wycinki wszystkich wartości elementu „kraj” skrzyżowane ze wszystkimi wartościami elementu „miasto” (pamiętaj, że może to być kosztowne).
  • { feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }
    • Wycinki wszystkich wartości w funkcji „kraj” skrzyżowane z wartością „wiek:20”

Należy pamiętać, że klucze funkcyjne mogą być funkcjami przekształconymi lub surowymi funkcjami wejściowymi. Aby uzyskać więcej informacji, zobacz tfma.SlicingSpec .

EvalSharedModel

Oprócz ustawień konfiguracyjnych TFMA wymaga również utworzenia instancji tfma.EvalSharedModel w celu współdzielenia modelu pomiędzy wieloma wątkami w tym samym procesie. Udostępniona instancja modelu zawiera informacje o typie modelu (keras itp.) oraz o tym, jak załadować i skonfigurować model z jego zapisanej lokalizacji na dysku (np. tagi itp.). Za pomocą interfejsu API tfma.default_eval_shared_model można utworzyć instancję domyślną, podając ścieżkę i zestaw tagów.