我是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
丢失功能。我在Tensorflow网站上发现了这种损失功能:
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
但是,我不确定这是否正确。
答案 0 :(得分:2)
首先要记住,交叉熵主要用于分类,而MSE用于回归。
在您的情况下,交叉熵衡量了两种分布之间的差异(实际发生的情况,称为标签-和您的预测)
因此,尽管第一个损失函数作用于softmax层的结果(可以看作是概率分布),而第二个损失函数直接作用于网络的浮点输出(没有概率分布)-因此它们不能简单地交换。