xia*_*awi 5 tensorflow tensorflow2.0
在 Tensorflow2 中,我可以使用类tf.keras.losses.CategoricalCrossentropy(此处定义)或函数categorical_crossentropy(此处定义)来计算标签和预测之间的交叉熵损失:
对于第一个,代码是:
loss_object = tf.keras.losses.SparseCategoricalCrossentropy()
# ...
@tf.function
def train_step(samples, labels):
with tf.GradientTape() as tape:
predictions = model(samples)
loss = loss_object(labels, predictions)
#...
Run Code Online (Sandbox Code Playgroud)
第二个更直接:
@tf.function
def forward(features, training=False):
predictions = model.call(...)
loss = tf.losses.categorical_crossentropy(
y_true=features['label'],
y_pred=predictions)
return loss, predictions
Run Code Online (Sandbox Code Playgroud)
数值结果是一样的。但是我想知道是否有更有效的方法?或者更一般地说,根据某些特定情况应该使用哪一个?
请注意,对于API 定义的任何类/函数,问题可能都是相同的
| 归档时间: |
|
| 查看次数: |
691 次 |
| 最近记录: |