在 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 定义的任何类/函数,问题可能都是相同的
我正在尝试导出module.exports对象中的多个参数。基本上是一个常数和一个函数。但我收到以下错误:
类型错误:add 不是一个函数。
第一个文件:
const name = 'Mike'
const add = function (x,y){
return x+y
}
module.exports = name,add();
Run Code Online (Sandbox Code Playgroud)
第二个文件:
const add = require ('./utils.js');
const name = require ('./utils.js');
Run Code Online (Sandbox Code Playgroud)