我设计了一个微笑检测系统。该系统建立在深度学习的基础上,并在MatConvnet上实现。最后一层是系统的输出,根据人的微笑量有10个输出。我想用一个数字输出来转换这十个输出,在1到10之间使用一个回归层。我如何在MatConvNet中做到这一点。谢谢
发布于 2015-04-30 20:38:50
对于回归层,您必须将CNN的最后一层(通常是softmax或softmaxloss)替换为您自己的回归层。
为了在MatConvNet中定义自己的层,需要有以下内容:
回归损失函数的一个流行选择是平方误差损失。您应该看看softmaxloss是如何在MatConvNet中实现的,以及如何在examples/cnn_train.m中调用它。更多细节可以在MatConvNet文档中找到,也可以在关于平方丢失这里的反向传播的简短教程中找到。
建议:这不能回答你的问题。然而,考虑到你的问题,将你的10个输出分类转换成一个分数要比训练整个CNN进行回归要容易。
给你的十种微笑分配数字1到10。CNN会给出输入图像在所有这些类上的后验概率P(1.10)。只需取类标签上的加权和( 1*P(1) + 2*P(2) +.)得到一个真实值的数字来表示微笑的数量。
https://stackoverflow.com/questions/29495145
复制相似问题