3.22 超参数优化
机器学习的重要方面是超参数优化。许多机器学习模型有很多超参数控制模型。这些超参数不会被学习算法直接学习,必须以选项的形式设置。dc.hyper模块包含了超参数优化工具。DeepChem的超参数优化算法是简单的且是单线程运行的。它们不想产生梯度超参数工具,但是当你开如探索参数空间时有用的第一个工具。随着你应用需求的增长,我们推荐切换到更重量级的超参数优化工具。
3.22.1 超参数优化API
class HyperparamOpt(model_builder: Callable[[. . . ], deepchem.models.models.Model])
超参数研究类的超类。
这是DeepChem中超参数研究类的抽像基类。
超参数研究用dc.models.Model类进行。每一个超参数对象按结构接收一个dc.models.Model类。当调用hyperparam_search类时,这个类用于构建许多不同的具体模型,它们对不同的训练集进行训练且用给定的验证集评估。不同的HyperparamOpt子类研究超参数评估空间的选择策略不同。这个类本身是一个抽象的超类且不应直接实例化。
__init__(model_builder: Callable[[. . . ], deepchem.models.models.Model])
初始化超参数优化器。
注意,这是一个抽象的构建子它只被用于子类。
参数 model_builder (constructor function.) – 这个参数必须为构建子函数它返回一个dc.models.Model实例对象。这个函数接收两个参数,字典型的model_params和用于指定模型目录的model_dir。见示例。
hyperparam_search(params_dict: Dict, train_dataset: deepchem.data.datasets.Dataset,
valid_dataset: deepchem.data.datasets.Dataset, metric:
deepchem.metrics.metric.Metric, output_transformers:
List[transformers.Transformer] = [], nb_epoch: int = 10, use_max:
bool = True, logdir: Optional[str] = None, **kwargs) → Tuple[
deepchem.models.models.Model, Dict, Dict]
构建超参数研究。
这个方法定义常见的API由所有的超参数优化器子类共用。不同的类实施不同的研究方法但它们必须按照这个共用API。
参数
params_dict (Dict) – 映射字串到值的字典。注意params_dict的准确语意会随你使用的优化器不同而不同。取决于超参数优化器优化方法的不同,这些值可以是ints/floats/strings/lists/等等。对于你将用于学习的具体的超参数优化方法子类请看文档。
train_dataset (Dataset) – 训练集
valid_dataset (Dataset) – 验证集(优化验证分值)
met