Python Tensorflow计算加权损失示例
我想使用Tensorflows tf.loss.compute_weighted_loss,但找不到任何好的例子。我有一个多类分类问题,使用tf.nn.sigmoid_cross_entropy_和_logits作为损失。现在我想独立地权衡每个标签的错误。假设我有n个标签,这意味着我需要一个n大小的权重向量。不幸的是,tf希望我传递一个(b,n)形的误差权重矩阵,其中b是批量大小。所以基本上我需要重复权重向量b次。给定一个固定的批大小是可以的,但是如果我的批大小是可变的(例如,数据集末尾的较小批),我必须进行调整。有没有办法解决这个问题,或者我错过了什么?我只是需要将向量从(n,)重新调整为(1,n),以使广播成为可能:Python Tensorflow计算加权损失示例,python,tensorflow,Python,Tensorflow,我想使用Tensorflows tf.loss.compute_weighted_loss,但找不到任何好的例子。我有一个多类分类问题,使用tf.nn.sigmoid_cross_entropy_和_logits作为损失。现在我想独立地权衡每个标签的错误。假设我有n个标签,这意味着我需要一个n大小的权重向量。不幸的是,tf希望我传递一个(b,n)形的误差权重矩阵,其中b是批量大小。所以基本上我需要重复权重向量b次。给定一个固定的批大小是可以的,但是如果我的批大小是可变的(例如,数据集末尾的较小批
error_weights = error_weights.reshape(1, error_weights.shape[0])
在现有答案的基础上,如果
错误权重
是张量
,则使用
error_weights = tf.expand_dims(error_weights, 0) # changes shape [n] to [1, n]
没有关系。我只需要将向量从(n,)改为(1,n)就可以进行广播了。