TensorFlow 指標(contrib)

2019-01-31 18:11 更新

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

API

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

要使用這些指標中的任何一個,只需聲明指標,update_op 重復調(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())

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

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

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

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

最后,通過評估 “value_tensor”

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

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])

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

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

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

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

TensorFlow 指標“操作”

  • 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

公眾號
微信公眾號

編程獅公眾號