本文记录了一个在训练模型时比较隐蔽的bug,即使用标准的PyYaml库读取配置文件中的科学计数法表示的浮点数时,会读取成string类型而非float类型:
batch_nrom等参数可能涉及到科学计数法表示的浮点数,比如yaml中的某一行为:
bn_kwargs_snet: {'epsilon': 2e-5, 'scale': True, 'sync': False, 'momentum': 0.9},
在使用yaml读取之后,epsilon会被读取为'2e-5'。
问题及解决参考:https://stackoverflow.com/questions/30458977/yaml-loads-5e-6-as-string-and-not-a-number
网友评论