dlib-如何使用lose_mean_squared_multioutput培训标签类型

Dlib - How do I use the loss_mean_squared_multioutput training label type?

本文关键字:multioutput 培训 标签 类型 squared mean 何使用 lose dlib-      更新时间:2023-10-16

ml和dlib的初学者,所以请原谅我,如果问题有些弯曲。

我一直在查看DLIB文档中的一些示例项目,并粗略地理解此处找到的示例:

http://dlib.net/dnn_introduction_ex.cpp.html

这个示例看起来很简单,足以让我掌握如何编译工作示例。

我想做的是尝试在示例中找到loss_multiclass_logloss_mean_squared_multioutput层,因为我认为这将更适合我的模型。

要简要介绍我遇到的问题,这是5个输出的回归问题。在培训中,我想以"图像"为食,并培训网络关于这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...

您需要在教练中使用单个列矩阵,例如:

// Use "matrix<float 5, 1>", not "matrix<float 1, 5>"...
trainer.train(input..., [list of matrix<float 5, 1>...);

希望会有所帮助。