Python Tensorflow计算加权损失示例

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次。给定一个固定的批大小是可以的,但是如果我的批大小是可变的(例如,数据集末尾的较小批

我想使用Tensorflows tf.loss.compute_weighted_loss,但找不到任何好的例子。我有一个多类分类问题,使用tf.nn.sigmoid_cross_entropy_和_logits作为损失。现在我想独立地权衡每个标签的错误。假设我有n个标签,这意味着我需要一个n大小的权重向量。不幸的是,tf希望我传递一个(b,n)形的误差权重矩阵,其中b是批量大小。所以基本上我需要重复权重向量b次。给定一个固定的批大小是可以的,但是如果我的批大小是可变的(例如,数据集末尾的较小批),我必须进行调整。有没有办法解决这个问题,或者我错过了什么?

我只是需要将向量从(n,)重新调整为(1,n),以使广播成为可能:

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)就可以进行广播了。