【发布时间】:2018-10-24 23:14:50
【问题描述】:
我在 Keras 中定义加权均方误差如下:
def weighted_mse(yTrue,yPred):
data_weights = [w0,w1,w2,w3]
data_weights_np = np.asarray(data_weights, np.float32)
weights = tf.convert_to_tensor(data_weights_np, np.float32)
return K.mean(weights*K.square(yTrue-yPred))
我有每个预测的权重列表。预测的形状例如:(25,4)。这是通过维度为 4 的最终密集层生成的。我希望在均方误差中对这些预测进行加权,因此我生成了一个张量并将其与误差平方和相乘。这是正确的方法吗?
因为,当我打印张量的形状时,将 tf.shape 用于 YTrue 和 YPred 它显示:
Tensor("loss_19/dense_20_loss/Shape:0", shape=(3,), dtype=int32)
对于权重:
Tensor("loss_19/dense_20_loss/Shape_2:0", shape=(1,), dtype=int32)
【问题讨论】:
-
fit方法的参数为class_weight和sample_weight。
标签: python tensorflow keras