损失层SoftmaxWithLossLayer

类SoftmaxWithLossLayer包含类SoftmaxLayer的实例。其中SoftmaxLayer层在正向传导函数中将64*10的bottom_data,通过计算得到64*10的top_data。这可以理解为输入数据为64个样本,每个样本特征数量为10,计算这64个样本分别在10个类别上的概率。公式如下,其中n=10,


SoftmaxWithLossLayer层利用SoftmaxLayer层的输出计算损失,公式如下,其中N为一个batch的大小(MNIST训练时batch_size为64,测试时batch_size为100)。 根据Cross-Entropy的定义有, 


其中y^y^为标签值,kk为标签为1所对应的的神经元序号。

反向传导时,计算偏导 

代码

layer {
  name: "loss_1"
  type: "SoftmaxWithLoss"
  bottom: "score_1"
  bottom: "gt_label"
  top: "loss_1"
  loss_weight: 1
}

猜你喜欢

转载自blog.csdn.net/ziyouyi111/article/details/80883619