Dlib – 如何使用loss_mean_squared_multioutput训练标签类型?

我是机器学习和Dlib的初学者,请原谅我的问题可能有些绕圈子。

我一直在查看Dlib文档中的一些示例项目,并大致理解了这个示例:

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

这个示例看起来足够简单,我可以理解如何编译一个工作示例。

然而,我想要尝试的是,在示例中使用loss_mean_squared_multioutput层来替代loss_multiclass_log,因为我认为它更适合我的模型。

简单描述一下我的问题,这是一个有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...

您需要在训练器中使用单列矩阵,像这样:

// 使用 "matrix<float 5, 1>",而不是 "matrix<float 1, 5>"...trainer.train(input..., [list of matrix<float 5, 1>...);

希望这对您有帮助。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注