当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.keras.utils.unpack_x_y_sample_weight用法及代码示例


解包用户提供的数据元组。

用法

tf.keras.utils.unpack_x_y_sample_weight(
    data
)

参数

  • data (x,) , (x, y)(x, y, sample_weight) 形式的元组。

返回

  • 未打包的元组,如果未提供 ysample_weight,则为 None s。

这是在覆盖 Model.train_stepModel.test_stepModel.predict_step 时使用的便利实用程序。该实用程序可以轻松支持 (x,) , (x, y)(x, y, sample_weight) 形式的数据。

单机使用:

features_batch = tf.ones((10, 5))
labels_batch = tf.zeros((10, 5))
data = (features_batch, labels_batch)
# `y` and `sample_weight` will default to `None` if not provided.
x, y, sample_weight = tf.keras.utils.unpack_x_y_sample_weight(data)
sample_weight is None
True

覆盖 Model.train_step 中的示例:

class MyModel(tf.keras.Model):

  def train_step(self, data):
    # If `sample_weight` is not provided, all samples will be weighted
    # equally.
    x, y, sample_weight = tf.keras.utils.unpack_x_y_sample_weight(data)

    with tf.GradientTape() as tape:
      y_pred = self(x, training=True)
      loss = self.compiled_loss(
        y, y_pred, sample_weight, regularization_losses=self.losses)
      trainable_variables = self.trainable_variables
      gradients = tape.gradient(loss, trainable_variables)
      self.optimizer.apply_gradients(zip(gradients, trainable_variables))

    self.compiled_metrics.update_state(y, y_pred, sample_weight)
    return {m.name:m.result() for m in self.metrics}

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.utils.unpack_x_y_sample_weight。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。