Dlib - 如何使用 loss_mean_squared_multioutput 训练标签类型?
Dlib - How do I use the loss_mean_squared_multioutput training label type?
这里是 ML 和 DLib 初学者,所以如果问题有点曲折,请原谅。
我一直在查看 Dlib 文档中的一些示例项目,并大致了解此处找到的示例:
http://dlib.net/dnn_introduction_ex.cpp.html
这个例子看起来很简单,足以让我掌握如何编译一个工作示例。
然而,我想做的是尝试使用 loss_mean_squared_multioutput
层代替示例中的 loss_multiclass_log
,因为我认为它更适合我的型号。
为了简要说明我遇到的问题,这是一个具有 5 个输出的回归问题。在训练中,我想输入一个 'image',并训练网络了解这 5 个输出中的任何一个相对于该输入的价值。
例如,如果我输入(伪代码):
input = [1, 0, 0, 0, 0, 0, 0, 0]
我希望输出产生这样的东西
output = [0, 0.1, 0, 0.5, -1]
考虑到这一点,如果 loss_mean_squared_multioutput
的标签是 matrix<float>
,我应该如何使用它?:
loss_multiclass_log<fc<5...
trainer.train([list of matrix<float>], [list of matrix<float 1, 5> = 0, 0.1, 0, 0.5, -1]);
此外,如果您看完后觉得这一切完全被误导和荒谬,请务必纠正我。非常感谢您的指导。
为了帮助任何可能想知道同样事情的人,Dlib 测试套件中有一个示例 -
https://github.com/davisking/dlib/blob/master/dlib/test/dnn.cpp#L2343
关于如何使用它的想法大部分是正确的,但请确保您拥有以下内容:
loss_multiclass_log<fc<5...
你需要在trainer中使用单列矩阵,像这样:
// Use "matrix<float 5, 1>", not "matrix<float 1, 5>"...
trainer.train(input..., [list of matrix<float 5, 1>...);
希望对您有所帮助。
这里是 ML 和 DLib 初学者,所以如果问题有点曲折,请原谅。
我一直在查看 Dlib 文档中的一些示例项目,并大致了解此处找到的示例:
http://dlib.net/dnn_introduction_ex.cpp.html
这个例子看起来很简单,足以让我掌握如何编译一个工作示例。
然而,我想做的是尝试使用 loss_mean_squared_multioutput
层代替示例中的 loss_multiclass_log
,因为我认为它更适合我的型号。
为了简要说明我遇到的问题,这是一个具有 5 个输出的回归问题。在训练中,我想输入一个 'image',并训练网络了解这 5 个输出中的任何一个相对于该输入的价值。
例如,如果我输入(伪代码):
input = [1, 0, 0, 0, 0, 0, 0, 0]
我希望输出产生这样的东西
output = [0, 0.1, 0, 0.5, -1]
考虑到这一点,如果 loss_mean_squared_multioutput
的标签是 matrix<float>
,我应该如何使用它?:
loss_multiclass_log<fc<5...
trainer.train([list of matrix<float>], [list of matrix<float 1, 5> = 0, 0.1, 0, 0.5, -1]);
此外,如果您看完后觉得这一切完全被误导和荒谬,请务必纠正我。非常感谢您的指导。
为了帮助任何可能想知道同样事情的人,Dlib 测试套件中有一个示例 - https://github.com/davisking/dlib/blob/master/dlib/test/dnn.cpp#L2343
关于如何使用它的想法大部分是正确的,但请确保您拥有以下内容:
loss_multiclass_log<fc<5...
你需要在trainer中使用单列矩阵,像这样:
// Use "matrix<float 5, 1>", not "matrix<float 1, 5>"...
trainer.train(input..., [list of matrix<float 5, 1>...);
希望对您有所帮助。