如何使用 Tensorflow 在卷积网络中的全连接层之后添加回归头?

Dak*_*ako 5 machine-learning computer-vision deep-learning conv-neural-network tensorflow

我是深度学习和 Tensorflow 的新手,由于我目前正在从事的一个项目,我必须学习这个主题。我正在使用卷积网络来检测和查找图像中单个对象的位置。我正在使用Standford CS231n class 中介绍的方法。讲师提到在网络中的全连接层之后连接一个回归头来找到对象的位置。我知道DNNRegressor在 Tensorflow 中有。我应该用它作为回归头吗?

在我修改 Tensorflow 关于使用 ConvNet为我的案例识别手写数字的教程之前。我不太确定如何将回归头添加到该程序中,以便它也可以找到对象的边界框。

这周我刚刚有机会接触机器学习和深度学习,如果我问了一个非常愚蠢的问题,我很抱歉,但我真的需要找到解决我问题的方法。非常感谢。

Max*_*xim 3

首先,为了训练用于对象定位任务的神经网络,您必须拥有包含本地化对象的数据集。这回答了您是否可以使用 MNIST 数据集的问题。MNIST 仅包含每个图像的类标签,因此您需要获取另一个数据集。Justin还在 37:34 左右谈到了热门数据集。

对象定位的工作方式是学习为每个图像输出 4 个值,而不是类别分布。该四值向量与真实四值向量进行比较,损失函数通常是它们差值的 L1 或 L2 范数。所以在代码中,regression head就是一个普通的回归层,在tensorflow中通过简单的调用就可以实现tf.reduce_mean

可以在此处找到执行对象定位的小而完整的示例。还建议看看这个问题