TensorFlow 指標(biāo)(contrib)

2019-01-31 18:11 更新

評估指標(biāo)和匯總統(tǒng)計的操作.

API

該模塊提供計算流式指標(biāo)的函數(shù):以動態(tài)價值計算的指標(biāo) Tensors。每個指標(biāo)聲明返回一個“value_tensor”,一個返回指標(biāo)當(dāng)前值的冪等運(yùn)算,還有一個“update_op”,這是一個從當(dāng)前Tensors 測量值累加信息的操作,并返回 “ value_tensor”。

要使用這些指標(biāo)中的任何一個,只需聲明指標(biāo),update_op 重復(fù)調(diào)用即可將數(shù)據(jù)累加到所需數(shù)量的 Tensor 值(通常每個都是單個批次),最后評估 value_tensor。例如,要使用streaming_mean:

value = ...
mean_value, update_op = tf.contrib.metrics.streaming_mean(values)
sess.run(tf.local_variables_initializer())

for i in range(number_of_batches):
  print('Mean after batch %d: %f' % (i, update_op.eval())
print('Final Mean: %f' % mean_value.eval())

每個指標(biāo)函數(shù)將節(jié)點(diǎn)添加到圖表中,該圖保持計算指標(biāo)值所需的狀態(tài)以及實際執(zhí)行計算的一組操作。每個指標(biāo)評估由三個步驟組成

  • 初始化:初始化指標(biāo)標(biāo)準(zhǔn)狀態(tài)
  • 聚合:更新指標(biāo)標(biāo)準(zhǔn)狀態(tài)的值
  • 完成:計??算最終的指標(biāo)值

在上面的例子中,調(diào)用 streaming_mean 創(chuàng)建一對狀態(tài)變量,它們將包含(1)運(yùn)行總和和(2)總和中樣本數(shù)的計數(shù)。因為流式指標(biāo)使用局部變量,所以初始化階段通過運(yùn)行tf.local_variables_initializer() 返回的操作來執(zhí)行的。它將 sum 和 count 變量設(shè)置為零。

接下來,通過 values 適當(dāng)?shù)貦z查狀態(tài)變量的當(dāng)前狀態(tài)和遞增來執(zhí)行聚合.此步驟通過運(yùn)行由指標(biāo)數(shù)返回的 update_op 來執(zhí)行。

最后,通過評估 “value_tensor”

實際上,我們通常希望評估多個批次和多個指標(biāo)。為此,我們只需要多次運(yùn)行指標(biāo)計算操作:

labels = ...
predictions = ...
accuracy, update_op_acc = tf.contrib.metrics.streaming_accuracy(
    labels, predictions)
error, update_op_error = tf.contrib.metrics.streaming_mean_absolute_error(
    labels, predictions)

sess.run(tf.local_variables_initializer())
for batch in range(num_batches):
  sess.run([update_op_acc, update_op_error])

accuracy, error = sess.run([accuracy, error])

請注意,在不同輸入上多次評估相同的指標(biāo)時,必須指定每個指標(biāo)的范圍,以避免將結(jié)果累加在一起:

labels = ...
predictions0 = ...
predictions1 = ...

accuracy0 = tf.contrib.metrics.accuracy(labels, predictions0, name='preds0')
accuracy1 = tf.contrib.metrics.accuracy(labels, predictions1, name='preds1')

某些指標(biāo)(如 streaming_mean 或 streaming_accuracy)可以通過 weights 參數(shù)加權(quán)。權(quán)重張量的大小必須作為指標(biāo)的加權(quán)平均值的標(biāo)簽,并且要和預(yù)測張量和結(jié)果相同。

TensorFlow 指標(biāo)“操作”

  • tf.contrib.metrics.streaming_accuracy
  • tf.contrib.metrics.streaming_mean
  • tf.contrib.metrics.streaming_recall
  • tf.contrib.metrics.streaming_recall_at_thresholds
  • tf.contrib.metrics.streaming_precision
  • tf.contrib.metrics.streaming_precision_at_thresholds
  • tf.contrib.metrics.streaming_auc
  • tf.contrib.metrics.streaming_recall_at_k
  • tf.contrib.metrics.streaming_mean_absolute_error
  • tf.contrib.metrics.streaming_mean_iou
  • tf.contrib.metrics.streaming_mean_relative_error
  • tf.contrib.metrics.streaming_mean_squared_error
  • tf.contrib.metrics.streaming_mean_tensor
  • tf.contrib.metrics.streaming_root_mean_squared_error
  • tf.contrib.metrics.streaming_covariance
  • tf.contrib.metrics.streaming_pearson_correlation
  • tf.contrib.metrics.streaming_mean_cosine_distance
  • tf.contrib.metrics.streaming_percentage_less
  • tf.contrib.metrics.streaming_sensitivity_at_specificity
  • tf.contrib.metrics.streaming_sparse_average_precision_at_k
  • tf.contrib.metrics.streaming_sparse_precision_at_k
  • tf.contrib.metrics.streaming_sparse_precision_at_top_k
  • tf.contrib.metrics.streaming_sparse_recall_at_k
  • tf.contrib.metrics.streaming_specificity_at_sensitivity
  • tf.contrib.metrics.streaming_concat
  • tf.contrib.metrics.streaming_false_negatives
  • tf.contrib.metrics.streaming_false_negatives_at_thresholds
  • tf.contrib.metrics.streaming_false_positives
  • tf.contrib.metrics.streaming_false_positives_at_thresholds
  • tf.contrib.metrics.streaming_true_negatives
  • tf.contrib.metrics.streaming_true_negatives_at_thresholds
  • tf.contrib.metrics.streaming_true_positives
  • tf.contrib.metrics.streaming_true_positives_at_thresholds
  • tf.contrib.metrics.auc_using_histogram
  • tf.contrib.metrics.accuracy
  • tf.contrib.metrics.aggregate_metrics
  • tf.contrib.metrics.aggregate_metric_map
  • tf.contrib.metrics.confusion_matrix

TensorFlow 設(shè)置“操作”

  • tf.contrib.metrics.set_difference
  • tf.contrib.metrics.set_intersection
  • tf.contrib.metrics.set_size
  • tf.contrib.metrics.set_union
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號