このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.keras.metrics.Metric

TensorFlow 1つのバージョン GitHubの上のソースを表示

メトリックロジックや状態をカプセル化します。

:から継承Layer

name メトリックインスタンスの(オプション)文字列名。
dtype メトリック結果の(任意)データ型。
**kwargs 追加の層は、引数をキーワード。

スタンドアロンの使用:

 m = SomeMetric(...)
for input in ...:
  m.update_state(input)
print('Final result: ', m.result().numpy())
 

使用方法compile() API:

 model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(64, activation='relu'))
model.add(tf.keras.layers.Dense(64, activation='relu'))
model.add(tf.keras.layers.Dense(10, activation='softmax'))

model.compile(optimizer=tf.keras.optimizers.RMSprop(0.01),
              loss=tf.keras.losses.CategoricalCrossentropy(),
              metrics=[tf.keras.metrics.CategoricalAccuracy()])

data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))

dataset = tf.data.Dataset.from_tensor_slices((data, labels))
dataset = dataset.batch(32)

model.fit(dataset, epochs=10)
 

サブクラスによって実装されます。

  • __init__()すべての状態変数を呼び出すことによって、この方法で作成する必要がありself.add_weight()のように: self.var = self.add_weight(...)
  • update_state() :self.var.assign_add(...):のような状態変数に対するすべての更新を持っています。
  • result()計算戻る状態変数からメトリックの値。

例サブクラス実装:

 class BinaryTruePositives(tf.keras.metrics.Metric):

  def __init__(self, name='binary_true_positives', **kwargs):
    super(BinaryTruePositives, self).__init__(name=name, **kwargs)
    self.true_positives = self.add_weight(name='tp', initializer='zeros')

  def update_state(self, y_true, y_pred, sample_weight=None):
    y_true = tf.cast(y_true, tf.bool)
    y_pred = tf.cast(y_pred, tf.bool)

    values = tf.logical_and(tf.equal(y_true, True), tf.equal(y_pred, True))
    values = tf.cast(values, self.dtype)
    if sample_weight is not None:
      sample_weight = tf.cast(sample_weight, self.dtype)
      sample_weight = tf.broadcast_to(sample_weight, values.shape)
      values = tf.multiply(values, sample_weight)
    self.true_positives.assign_add(tf.reduce_sum(values))

  def result(self):
    return self.true_positives
 

メソッド

add_weight

ソースを表示

状態変数を追加します。サブクラスにより使用されるだけです。

reset_states

ソースを表示

メトリックの状態変数のすべてをリセットします。

メトリックは、トレーニング中に評価されている場合、この関数は、エポック/ステップの間と呼ばれています。

result

ソースを表示

計算して返しメトリック値テンソル。

結果の計算は単純に状態変数を使用してメトリック値を算出する冪等操作です。

update_state

ソースを表示

メトリックの統計情報を蓄積します。

引数
*args

**kwargs メトリックへの入力のミニバッチ。