Configuration d'un modèle enregistré d'évaluation

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Tensorflow modèle d' analyse (TFMA) peut exporter le graphique d'évaluation d'un modèle à un spécial SavedModel appelé EvalSavedModel . (Notez que le graphe d'évaluation est utilisée et non le graphique pour la formation ou l' inférence.) Le EvalSavedModel contient des informations supplémentaires qui permet TFMA de calculer les mêmes paramètres d'évaluation définis dans le modèle d'une manière répartie sur une grande quantité de données et définies par l' utilisateur tranches.

Modifier un modèle existant

Pour utiliser un modèle existant avec TFMA, d' abord modifier le modèle à exporter le EvalSavedModel . Cela se fait par l' ajout d' un appel à tfma.export.export_eval_savedmodel et est similaire à estimator.export_savedmodel . Par example:

# 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 doit être défini et est similaire à la serving_input_receiver_fn pour estimator.export_savedmodel . Comme serving_input_receiver_fn , la eval_input_receiver_fn fonction définit un exemple de paramètre fictif d'entrée, analyse les caractéristiques de l'exemple, et renvoie les caractéristiques analysé. Il analyse et renvoie l'étiquette.

L'extrait suivant définit un exemple 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'])

Dans cet exemple, vous pouvez voir que :

  • les labels peuvent aussi être un dictionnaire. Utile pour un modèle à plusieurs têtes.
  • La eval_input_receiver_fn fonction, très probablement, être le même que votre serving_input_receiver_fn fonction. Mais, dans certains cas, vous souhaiterez peut-être définir des fonctionnalités supplémentaires pour le tranchage. Par exemple, vous introduisez une age_category caractéristique qui divise l' age caractéristique en plusieurs seaux. Vous pouvez ensuite trancher sur cette fonctionnalité dans TFMA pour aider à comprendre comment les performances de votre modèle diffèrent selon les différentes catégories d'âge.

Ajout de métriques de post-exportation

Des mesures supplémentaires qui ne sont pas inclus dans le modèle peuvent être Aded en utilisant add_metrics_callbacks . Pour plus de détails, consultez l'aide en Python pour run_model_analysis .

Exemples de bout en bout

Essayez le vaste exemple de bout en bout avec tensorflow Transformer pour pré - traitement de fonction, tensorflow Estimateurs pour la formation, tensorflow modèle d' analyse et Jupyter pour l' évaluation et tensorflow service pour le service.

Ajout d'une métrique de post-exportation personnalisée

Si vous voulez ajouter votre propre métrique de poste personnalisé à l'exportation TFMA, s'il vous plaît la caisse de la documentation ici .