我想根据训练期间"当前预测"与"正确标签"的接近/远距离来缩放每个图像的损失值.例如,如果正确的标签是"猫"并且网络认为它是"狗",那么惩罚(损失)应该小于网络认为它是"汽车"的情况.
我正在做的方式如下:
1-我定义了标签之间距离的矩阵,
2-将该矩阵作为底层传递给"softmaxWithLoss"图层,
3将每个log(prob)乘以该值以根据不良情况缩放损失forward_cpu
但是我不知道该怎么做backward_cpu.我知道渐变(bottom_diff)必须改变但不太确定,如何在这里加入比例值.根据数学,我必须按比例缩放渐变(因为它只是一个比例),但不知道如何.
此外,似乎在caffe中有loosLayer被称为"InfoGainLoss"非常相似的工作如果我没有弄错,但是这一层的后面部分有点令人困惑:
bottom_diff[i * dim + j] = scale * infogain_mat[label * dim + j] / prob;
Run Code Online (Sandbox Code Playgroud)
我不确定为什么infogain_mat[]要分开prob而不是乘以!如果我使用单位矩阵infogain_mat是不是它应该像前向和后向的softmax损失一样?
如果有人能给我一些指示,我们将不胜感激.
我正在尝试编译Pete Warden博客中描述的量化脚本.但是,运行以下bazel构建后,我收到以下错误消息:
bazel build tensorflow/contrib/quantization/tools:quantize_graph
ERROR: no such package 'tensorflow/contrib/quantization/tools': BUILD file not found on package path.
INFO: Elapsed time: 0.277s
Run Code Online (Sandbox Code Playgroud)