记录一下Lama模型的训练、infe踩坑,以及如何更改预设的mask生成方式。
一、环境
简单提一下,一定要按照作者给的requirements.txt里的库版本安装,hydra-core和pytorch-lightning最新版本在此项目代码上均会报错无法运行。
二、预训练模型微调
lama的训练全部是以配置文件.yaml的方式进行的,所以针对不同数据集的预训练模型所使用的yaml也是不同的。总体上作者是在PLACES和CelebA上进行了预训练,同时也包含了Big-Lama、Lama-fourier等多种模型细节的配置。就以在Places-Challenge效果最好的Big-Lama为例,在预训练权重上使用自己的数据和mask进行微调。
1、定义自己的mask生成方式
假如训练中不想使用原本预设的mask生成方式,想要根据自己的任务进行生成(例如在特定位置以特定形状进行生成mask)。
在saicinpainting/training/data/masks.py中首先参照作者方式构建自己的mask生成类。例如RandomSuperresMaskGenerator类是执行make_random_superres_mask函数返回一个矩阵mask,代表覆盖区域。

之后在同文件中的get_mask_generator函数中增添自己的类对应的kind。

最后在saicinpainting/training/data/datasets.py的make_default_train_dataloader函数中通过指定get_mask_generator对应的kind参数实现自定义mask类的调用。这个在训练过程中可以在config中指定
2、数

这篇博客介绍了如何在Lama模型训练中更改预设的mask生成方式,包括在saicinpainting项目中定义新的mask类、更新配置文件以调用自定义mask,并分享了数据准备和模型微调的步骤。作者提醒注意库版本的匹配,并提供了预训练权重的下载链接。
最低0.47元/天 解锁文章
1710





