为什么dlib的神经网络xml导出所包含的层参数与训练员指定的参数不同?

时间:2019-03-19 11:49:59

标签: c++ dlib

在DLib中,可以通过dlib::net_to_xml(some_net, some_filename)函数简单地输出神经网络类型。它工作正常,但也显示诸如网络类型learning_rate_multi之类的信息。以我为例,它为其中一层导出以下行(为清晰起见,省略了其余导出的xml):

<fc num_outputs='42' learning_rate_mult='1' weight_decay_mult='1' bias_learning_rate_mult='500' bias_weight_decay_mult='0'>

除了learning_rate_multweight_decay_mult始终显示为1的值之外,这些值都是正确的。我尝试通过Trainer类将它们设置为不同的值,例如2或0.0001,但它们始终显示1。我验证了网络确实使用了值2和0.0001。

这可能是dlib的dlib::net_to:xml函数中的错误吗?

1 个答案:

答案 0 :(得分:2)

这些值适用于每个图层,并且独立于培训师值。图层参数与诸如Adam优化算法之类的优化器相关:

https://machinelearningmastery.com/adam-optimization-algorithm-for-deep-learning/

您可以通过在每一层中指定它们来更改它们。 所以不,这不是一个错误。