图:在工业界,花费在数据集上的时间比花在模型上的时间更多
探索现有的预训练模型
这个环节的目标是用尽可能多的可用资源,给建立模型的过程一个最好的开始。
「迁移学习」是当今深度学习的核心内容:我们可能不会从头开始创建一个模型,而是对一个已存在的模型进行微调,而该模型是在相关任务上预先训练好的。
例如,如果你想创建一个口罩检测模型,那么你可能会从GitHub下载一个预先训练好的人脸检测模型,因为这个人脸检测模型发展更成熟,更流行,也有更多的前期工作铺垫。
下面是该环节常用的工具和方法:
FiftyOne model zoo - 使用一行代码,即可下载和运行模型
TensorFlow Hub - 训练过的ML模型仓库
modelzoo.oo - 为包含了各种任务和库预先训练的深度学习模型
构建训练循环
你的数据可能并不会和用来预训练的数据完全属于同一类型。
比如,对于图像数据集,在为模型设置训练pipeline时,需要考虑输入分辨率和对象大小等因素。
此外,你还需要修改模型的输出结构,以匹配标签的类和结构。PyTorch lightning就提供了一种简单的方法,使用这种方法,即可用有限的代码扩大模型训练。
下面是该环节常用的工具:
Scikit Learn - 构建和可视化经典机器学习系统
PyTorch, PyTorch Lightning, TensorFlow, TRAX - 流行的深度学习Python库
Sagemaker - 在Sagemaker IDE中建立和训练机器学习系统
实验跟踪
在整个周期内,这一环节可能需要多次迭代。
你最终会训练出很多不同的模型,所以你需要仔细地跟踪模型的不同版本,以及训练时用到的超参数和数据,这将极大地帮助你保持事情的条理性。
在这个过程中,常用的工具有:
Tensorbord,Weights