在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_mult
和weight_decay_mult
始终显示为1。我尝试将它们与Trainer类的值设置为不同的值,例如2或0.0001,但它们始终显示1。我验证了值2和网络确实使用了0.0001。这可能是dlib的
dlib::net_to:xml
函数中的错误吗? 最佳答案
这些值适用于每个层,并且独立于培训师值。图层参数与优化程序(例如Adam优化算法)相关:
https://machinelearningmastery.com/adam-optimization-algorithm-for-deep-learning/
您可以通过在每个图层中指定它们来更改它们。
所以不,这不是错误。
关于c++ - 为什么dlib的神经网络xml导出所包含的层参数与训练员指定的参数不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55240396/