如何预训练自定义模型?
kerasmachine learningprogrammingtensorflow
可以使用 Keras Sequential API 构建顺序模型,该 API 用于处理普通的层堆栈。这里每个层只有一个输入张量和一个输出张量。
预训练模型可用作特定数据集上的基础模型。这节省了在特定数据集上再次训练模型的时间和资源。
预训练模型是一个保存的网络,该网络之前会在大型数据集上进行训练。这个大型数据集将是一个大规模的图像分类任务。预训练模型可以按原样使用,也可以与迁移学习一起定制,具体取决于需求和模型。
自定义模型可以通过两种方式进行预训练:
特征提取
先前网络学习到的表示可用于从新样本中提取有意义的特征。可以添加一个新的分类器,该分类器将从头开始训练,并将位于预训练模型之上。这可用于重新利用先前为数据集学习的特征图。
整个模型不需要重新训练。基础卷积网络已经具有通常用于对图片进行分类的特征。
但预训练模型的最终分类部分是针对原始分类任务的。这意味着它特定于模型训练的类集。
微调
解冻冻结模型基础的一些顶层,并一起训练新添加的分类器层以及基础模型的最后几层。这将允许用户"微调"基础模型中的高阶特征表示。这有助于使模型与特定任务更相关。