Dołącz do TensorFlow na Google I/O, 11-12 maja Zarejestruj się teraz

Konfiguracja zapisanego modelu Eval

TensorFlow Analiza modelu (TFMA) można wyeksportować wykres oceny danego modelu do specjalnego SavedModel zwanego EvalSavedModel . (Należy zauważyć, że wykres oceny jest używany, a nie wykres szkolenia lub wnioskowania). Określenie EvalSavedModel zawiera dodatkowe informacje, które pozwalają TFMA obliczyć same dane oceny określonych w modelu są równomiernie na dużej ilości danych i użytkownika plastry.

Zmodyfikuj istniejący model

Aby użyć istniejącego modelu z TFMA najpierw zmodyfikować model, aby wyeksportować EvalSavedModel . Odbywa się to poprzez dodanie połączenia do tfma.export.export_eval_savedmodel i jest podobny do estimator.export_savedmodel . Na przykład:

# Define, train and export your estimator as usual
estimator = tf.estimator.DNNClassifier(...)
estimator.train(...)
estimator.export_savedmodel(...)

# Also export the EvalSavedModel
tfma.export.export_eval_savedmodel(
  estimator=estimator, export_dir_base=export_dir,
  eval_input_receiver_fn=eval_input_receiver_fn)

eval_input_receiver_fn muszą być zdefiniowane i jest podobny do serving_input_receiver_fn dla estimator.export_savedmodel . Jak serving_input_receiver_fn The eval_input_receiver_fn funkcja definiuje przykład zastępczy wejściowego, przetwarza cechy z przykładu i zwraca przeanalizowanej możliwości. Analizuje i zwraca etykietę.

Poniższy kod określa na przykład eval_input_receiver_fn :

country = tf.feature_column.categorical_column_with_hash('country', 100)
language = tf.feature_column.categorical_column_with_hash('language', 100)
age = tf.feature_column.numeric_column('age')
label = tf.feature_column.numeric_column('label')

def eval_input_receiver_fn():
  serialized_tf_example = tf.compat.v1.placeholder(
      dtype=tf.string, shape=[None], name='input_example_placeholder')

  # This *must* be a dictionary containing a single key 'examples', which
  # points to the input placeholder.
  receiver_tensors = {'examples': serialized_tf_example}

  feature_spec =  tf.feature_column.make_parse_example_spec(
      [country, language, age, label])
  features = tf.io.parse_example(serialized_tf_example, feature_spec)

  return tfma.export.EvalInputReceiver(
    features=features,
    receiver_tensors=receiver_tensors,
    labels=features['label'])

W tym przykładzie widać, że:

  • labels mogą być również słownikiem. Przydatne w przypadku modelu wielogłowego.
  • eval_input_receiver_fn funkcja będzie, najprawdopodobniej, będzie taka sama, jak serving_input_receiver_fn funkcji. Ale w niektórych przypadkach możesz chcieć zdefiniować dodatkowe funkcje do krojenia. Na przykład, wprowadzenie age_category cechę, która dzieli age funkcji na kilka wiader. Następnie możesz podzielić tę funkcję w TFMA, aby pomóc zrozumieć, jak wydajność Twojego modelu różni się w różnych kategoriach wiekowych.

Dodawanie wskaźników po eksporcie

Dodatkowe dane, które nie zostały uwzględnione w modelu można aded użyciu add_metrics_callbacks . Aby uzyskać więcej informacji, zobacz pomoc Pythona do run_model_analysis .

Kompleksowe przykłady

Spróbuj obszerny przykład end-to-end m.in. TensorFlow Transform dla funkcji wyprzedzającym, TensorFlow estymatorów do szkolenia TensorFlow analizy modelu i Jupyter oceny oraz TensorFlow Serving do serwowania.

Dodawanie niestandardowej metryki eksportu post

Jeśli chcesz dodać własny zwyczaj postu eksportowej metrykę w TFMA prosimy kasy dokumentację tutaj .