Bantuan melindungi Great Barrier Reef dengan TensorFlow pada Kaggle Bergabung Tantangan

Mengonfigurasi Model Tersimpan Evaluasi

TensorFlow Model Analysis (TFMA) dapat mengekspor grafik evaluasi model ke SavedModel khusus yang disebut EvalSavedModel . (Perhatikan bahwa grafik evaluasi digunakan dan bukan grafik untuk pelatihan atau inferensi.) EvalSavedModel berisi informasi tambahan yang memungkinkan TFMA untuk menghitung metrik evaluasi yang sama yang ditentukan dalam model secara terdistribusi melalui sejumlah besar data dan ditentukan pengguna irisan.

Ubah model yang sudah ada

Untuk menggunakan model yang sudah ada dengan TFMA, modifikasi model terlebih dahulu untuk mengekspor EvalSavedModel . 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 ditentukan dan mirip dengan serving_input_receiver_fn untuk estimator.export_savedmodel . Seperti serving_input_receiver_fn , fungsi eval_input_receiver_fn mendefinisikan contoh placeholder input, mengurai fitur dari contoh, dan mengembalikan fitur yang diurai. Ini mem-parsing dan mengembalikan label.

Cuplikan 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.
  • Fungsi eval_input_receiver_fn kemungkinan besar akan sama dengan fungsi serving_input_receiver_fn Anda. Namun, dalam beberapa kasus, Anda mungkin ingin menentukan fitur tambahan untuk mengiris. Misalnya, Anda memperkenalkan fitur age_category yang membagi fitur age menjadi beberapa keranjang. Anda kemudian dapat membagi fitur ini di TFMA untuk membantu memahami bagaimana kinerja model Anda berbeda di berbagai kategori usia.

Menambahkan Metrik Pasca Ekspor

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

Contoh ujung-ke-ujung

Coba contoh ujung ke ujung ekstensif yang menampilkan Transformasi TensorFlow untuk prapemrosesan fitur, Estimator TensorFlow untuk pelatihan, Analisis Model TensorFlow dan Jupyter untuk evaluasi, dan Penyajian TensorFlow untuk penyajian.

Menambahkan Metrik Ekspor Pos Khusus

Jika Anda ingin menambahkan metrik ekspor pos kustom Anda sendiri di TFMA, lihat dokumentasinya di sini .