Mengonfigurasi Model yang Disimpan Eval

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Analisis Model TensorFlow (TFMA) dapat mengekspor grafik evaluasi model untuk khusus SavedModel disebut EvalSavedModel . (Perhatikan bahwa grafik evaluasi digunakan dan tidak grafik untuk pelatihan atau inferensi.) The EvalSavedModel mengandung informasi tambahan yang memungkinkan TFMA untuk menghitung metrik evaluasi yang sama yang didefinisikan dalam model dengan cara didistribusikan melalui sejumlah besar data dan user-didefinisikan irisan.

Memodifikasi model yang ada

Untuk menggunakan model yang sudah ada dengan TFMA, pertama memodifikasi model untuk mengekspor EvalSavedModel . Hal ini dilakukan dengan menambahkan panggilan ke tfma.export.export_eval_savedmodel dan mirip dengan estimator.export_savedmodel . Sebagai contoh:

# 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 harus didefinisikan dan mirip dengan serving_input_receiver_fn untuk estimator.export_savedmodel . Seperti serving_input_receiver_fn , yang eval_input_receiver_fn fungsi mendefinisikan contoh masukan placeholder, mem-parsing fitur dari contoh, dan mengembalikan fitur parsing. Ini mem-parsing dan mengembalikan label.

Potongan berikut mendefinisikan contoh 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'])

Dalam contoh ini Anda dapat melihat bahwa:

  • labels juga bisa menjadi kamus. Berguna untuk model berkepala banyak.
  • The eval_input_receiver_fn fungsi akan, kemungkinan besar, sama seperti Anda serving_input_receiver_fn fungsi. Namun, dalam beberapa kasus, Anda mungkin ingin menentukan fitur tambahan untuk slicing. Misalnya, Anda memperkenalkan age_category fitur yang membagi age fitur menjadi beberapa ember. Anda kemudian dapat mengiris fitur ini di TFMA untuk membantu memahami bagaimana kinerja model Anda berbeda di berbagai kategori usia.

Menambahkan Metrik Ekspor Pos

Metrik tambahan yang tidak termasuk dalam model dapat aded menggunakan add_metrics_callbacks . Untuk lebih jelasnya, lihat bantuan Python untuk run_model_analysis .

Contoh ujung ke ujung

Coba luas contoh end-to-end yang menampilkan TensorFlow Transform untuk fitur preprocessing, TensorFlow estimator untuk pelatihan, Analisis Model TensorFlow dan Jupyter untuk evaluasi, dan TensorFlow Melayani untuk melayani.

Menambahkan Metrik Ekspor Pos Kustom

Jika Anda ingin menambahkan metrik ekspor posting kustom Anda sendiri di TFMA, silakan checkout dokumentasi di sini .