dlib-如何使用lose_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_multiclass_log
的loss_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>...);
希望会有所帮助。