def cross_entropy_error(y, t): if y.ndim == 1: t = t.reshape(1, t.size) y = y.reshape(1, y.size) # 监督数据是one-hot-vector的情况下,转换为正确解标签的索引 if t.size == y.size: t = t.argmax(axis=1) batch_size = y.shape[0] return -np.sum(np.log(y[np.arange(batch_size), t] + 1e-7)) / batch_size
时间: 2024-04-03 07:37:18 浏览: 120
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
这是交叉熵误差(Cross Entropy Error)损失函数,用于衡量神经网络输出与目标值之间的差距。交叉熵误差通常用于多分类任务,其定义为预测值与真实值之间的交叉熵,也就是预测值的自然对数与真实值的点积,再取相反数。当预测值与真实值完全一致时,交叉熵误差为 0,否则交叉熵误差越大,表示预测值与真实值之间的差距越大,模型的性能越差。在神经网络中,交叉熵误差损失函数常被用于多分类问题的训练,例如识别手写数字等任务。反向传播算法使用交叉熵误差损失函数的导数来更新网络参数,使得损失函数不断减小,模型不断优化。
阅读全文