【发布时间】:2016-07-22 15:51:37
【问题描述】:
我正在做一个项目,该项目是在图像中定位对象。我要采用的方法是基于CS231n-8中的定位算法。
网络结构有两个优化头,分类头和回归头。在训练网络时如何将它们都最小化?
我有一个想法,将两者总结为一种损失。但问题是分类损失是softmax损失,回归损失是l2损失,这意味着它们有不同的范围。我认为这不是最好的方法。
【问题讨论】:
标签: tensorflow
我正在做一个项目,该项目是在图像中定位对象。我要采用的方法是基于CS231n-8中的定位算法。
网络结构有两个优化头,分类头和回归头。在训练网络时如何将它们都最小化?
我有一个想法,将两者总结为一种损失。但问题是分类损失是softmax损失,回归损失是l2损失,这意味着它们有不同的范围。我认为这不是最好的方法。
【问题讨论】:
标签: tensorflow
这取决于您的网络状态。
如果您的网络只能提取特征 [您正在使用从其他网络保留的权重],您可以将此权重设置为常数,然后分别训练两个分类头,因为梯度不会流过常量。
如果您没有使用来自预训练模型的权重,则
回归头将学习组合从卷积层提取的特征,调整其参数,以最小化 L2 损失。
Tl;博士:
graph_util.convert_variables_to_constants 将每个学习参数转换为常数张量,如'freeze_graph` 脚本中所示。【讨论】: