关键字介绍
使用HAT算法包训练模型通常只需使用一条命令就可以了,即:
其中 /PATH/TO/CONFIG 就是模型训练对应的 config 文件,它负责定义了模型结构、数据集加载、以及整套的训练流程。
本章节通过介绍config文件中一些固定的全局的关键字,以及它们是如何配置的,让您对config文件的内容以及作用有个大致的了解。
全局关键字
之所以称这些变量为全局关键字,是因为几乎每个 config 文件中都定义了以上这些变量,且对应的功能基本一致。因此通过对这篇文档的学习,您可以大致理解任意一个 config 文件实现的功能。
如何配置
这里主要介绍数据类型为 dict 的全局关键字的配置。
数据类型为 dict 的全局关键字可以为两种:
-
包含
type的,例如model、data_loader、float_trainer等。 -
不包含
type的,例如compile_cfg。
它们的区别在于包含 type 的全局关键字本质可以看作是一个 class,它的type值可以是一个 string 变量,也可以是一个具体的 class,如果是 string, 在程序运行中同样会被 build 成一个相应的 class。这个dict中除掉type之外的其它keys的值都用于初始化这个 class。和全局关键字属性类似,这些keys的值可以是一个数值,也可以是一个包含type变量的dict,例如 data_loader 中的 dataset 属性,以及这个 dataset 下面的 transforms 属性。
对于没有 type 变量的全局关键字来说,它就是一个普通类型的 dict 变量,代码在运行过程中会通过其 keys 获取对应的 values。
所有已经提供的config配置,可以保证正常运行和复现精度。如果因为环境配置和训练时间等原因,需要修改配置的话,那么相对的训练策略可能也需要更改。直接修改config中的个别配置有时候并不能得到想要的结果。
