Я решаю задачи классификации одного из 6 видов животных по его следу, датасет состоит из 3000 обучающих фото и 300 валидационных фото. Я использую ResNet 18 с предобученными весами, нормировка по ImageNet оптимизатор Adam, lr = 1e-3, batch = 32, 20 эпох, а также использую кросс энтропию. Проблема в том, что на обучении уже на 10 эпохе я получаю точность на обучении 97%, а на валидации у меня точность и macro f1 держатся на уровне 77% и не поднимаются особо выше.
Вот голова модели:
model_ft = models.resnet18(weights='IMAGENET1K_V1')
num_ftrs = model_ft.fc.in_features
model_ft.fc = nn.Sequential(
nn.Linear(num_ftrs, 256),
nn.ReLU(),
nn.Linear(256, num_classes)
)
Вот аугментации:
# train
transforms.RandomResizedCrop(224, scale=(0.7, 1.0)),
transforms.RandomHorizontalFlip(0.5),
transforms.RandomRotation(15),
transforms.ColorJitter(0.3, 0.3, 0.3, 0.1),
transforms.RandomAffine(degrees=0, translate=(0.1, 0.1), scale=(0.9, 1.1))
# val
transforms.Resize(256),
transforms.CenterCrop(224)
Я честно не особо понимаю что мне в данной ситуации делать, прошу каких-то советов!