代码之家  ›  专栏  ›  技术社区  ›  Ahmad

如何在tensorflow会话中使用均方误差损失

  •  0
  • Ahmad  · 技术社区  · 6 年前

    我不熟悉tensorflow

    tensorflow会话代码的一部分包括:

     loss = tf.nn.softmax_cross_entropy_with_logits_v2(
                        logits=net, labels=self.out_placeholder, name='cross_entropy')
                    self.loss = tf.reduce_mean(loss, name='mean_squared_error')
    

    我想用 mean_squared_error

    tf.losses.mean_squared_error(
    labels,
    predictions,
    weights=1.0,
    scope=None,
    loss_collection=tf.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
    )
    

    我需要这个回归问题的损失函数。

    我试过:

    loss = tf.losses.mean_squared_error(predictions=net, labels=self.out_placeholder)
    self.loss = tf.reduce_mean(loss, name='mean_squared_error')
    

    哪里 net = tf.matmul(input_tensor, weights) + biases

    1 回复  |  直到 6 年前
        1
  •  3
  •   Jonathan R    6 年前

    首先要记住,交叉熵主要用于分类,而MSE用于回归。

    在您的例子中,交叉熵测量两个分布之间的差异(真实发生,称为标签-和您的预测)

    因此,虽然第一个损失函数作用于softmax层的结果(可以看作是概率分布),但第二个损失函数直接作用于网络的浮点输出(不是概率分布),因此它们不能简单地交换。