473. PetFinder.my - Pawpularity Contest | petfinder-pawpularity-score
首先,我要感谢各位参赛者和主办方!
我们的解决方案主要由三部分组成。
首先,我们提取了图像嵌入并将其用于 SVR 和 GPR。我们的灵感来自 Chris 的 讨论 和 CommonLit 第6名方案。
图像嵌入的大小为 1536(未更改),并使用 sklearn 的 normalize 函数对其进行了归一化。
我们最终选择了 4 个模型进行集成。所有模型在计算 CV 时均使用了 TTA(n=5)。
| 模型 | NN CV | SVR CV | GPR CV | 备注 |
|---|---|---|---|---|
| swin_large_patch4_window7_224_in22k | 17.48 | 17.51 | 17.47 | None |
| swin_large_patch4_window7_224 | 17.42 | 17.55 | 17.45 | Focal Loss(gamma=2) |
| swin_large_patch4_window7_224 | 17.44 | 17.53 | 17.41 | Focal Loss(gamma=0.5) 和 mixup(α=0.2) |
| swin_large_patch4_window7_224 | 17.58 | None | None | 由 FastAI 训练 |
训练流程基于 此 Notebook(感谢分享!),验证方式也相同。
我们使用了以下代码:
def get_train_transforms(epoch, dim = Config.im_size):
return A.Compose(
[
# resize like Resize in fastai
A.SmallestMaxSize(max_size=dim, p=1.0),
A.CenterCrop(height=dim, width=dim, p=1.0),
A.HorizontalFlip(p = 0.5),
A.geometric.transforms.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.1, rotate_limit=15, p=0.5)
]
)
def get_tta_transforms(epoch, dim = Config.im_size):
return A.Compose(
[
# resize like Resize in fastai
A.SmallestMaxSize(max_size=dim, p=1.0),
A.CenterCrop(height=dim, width=dim, p=1.0),
A.HorizontalFlip(p = 0.5),
A.geometric.transforms.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.1, rotate_limit=15, p=1.0)
]
)
我们集成了 Catboost * 0.2 和 Ridge * 0.8。除了 train 和 test.csv 中使用的元数据外,我们还添加了 此 Notebook 中使用的 yolov5 猫狗特征。
顺便说一句,25天前使用 Swin large 384 提交的 Private LB 分数为 16.975(达到第22名)。所以,我们本应该信任 Swin large 384 的……