После знакомства с теорией CNN я пытался изучить основы ее кодирования в PyTorch.
Я почти педантично слежу за 05. PyTorch Going Modular, чтобы научиться моделировать на основе сценариев и записывать модель CNN Tiny VGG, описанную в CNN объяснения.
Данные, на которых я тренируюсь, как и в 05. PyTorch Going Modular, представляют собой набор данных для пиццы, стейка и суши; загружается и трансформируется, как здесь.
Опять же, модель та, что здесь.
Проблема
< hr />
После нескольких попыток настроить следующие гиперпараметры:
Код: Выделить всё
NUM_EPOCHS = 20
BATCH_SIZE = 20
HIDDEN_UNITS = 10
LEARNING_RATE = 0.0005
Код: Выделить всё
loss_fn = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.AdamW(tiny_vgg.parameters(), lr=LEARNING_RATE)
Код: Выделить всё
Epoch: 1 | train_loss: 1.1018 | train_acc: 0.2875 | test_loss: 1.0947 | test_acc: 0.4500
Epoch: 2 | train_loss: 1.0974 | train_acc: 0.3833 | test_loss: 1.0970 | test_acc: 0.3125
Epoch: 3 | train_loss: 1.0960 | train_acc: 0.3375 | test_loss: 1.0995 | test_acc: 0.3125
Epoch: 4 | train_loss: 1.0895 | train_acc: 0.3500 | test_loss: 1.1013 | test_acc: 0.3125
Epoch: 5 | train_loss: 1.0626 | train_acc: 0.3917 | test_loss: 1.0755 | test_acc: 0.3250
Epoch: 6 | train_loss: 1.0566 | train_acc: 0.3750 | test_loss: 1.0666 | test_acc: 0.3375
Epoch: 7 | train_loss: 1.0105 | train_acc: 0.5542 | test_loss: 1.0133 | test_acc: 0.4208
Epoch: 8 | train_loss: 0.9488 | train_acc: 0.5708 | test_loss: 1.0114 | test_acc: 0.4792
Epoch: 9 | train_loss: 0.8834 | train_acc: 0.5625 | test_loss: 0.9973 | test_acc: 0.4208
Epoch: 10 | train_loss: 0.8751 | train_acc: 0.5667 | test_loss: 1.0350 | test_acc: 0.4542
Epoch: 11 | train_loss: 0.8098 | train_acc: 0.6375 | test_loss: 0.9834 | test_acc: 0.4458
Epoch: 12 | train_loss: 0.8136 | train_acc: 0.6333 | test_loss: 1.0400 | test_acc: 0.3792
Epoch: 13 | train_loss: 0.8042 | train_acc: 0.6833 | test_loss: 0.9929 | test_acc: 0.4458
Epoch: 14 | train_loss: 0.7932 | train_acc: 0.6292 | test_loss: 1.0383 | test_acc: 0.4333
Epoch: 15 | train_loss: 0.7796 | train_acc: 0.6458 | test_loss: 1.0025 | test_acc: 0.4833
Epoch: 16 | train_loss: 0.7654 | train_acc: 0.6708 | test_loss: 1.0344 | test_acc: 0.4375
Epoch: 17 | train_loss: 0.7412 | train_acc: 0.6833 | test_loss: 1.0358 | test_acc: 0.4625
Epoch: 18 | train_loss: 0.7168 | train_acc: 0.6667 | test_loss: 1.0759 | test_acc: 0.4125
Epoch: 19 | train_loss: 0.7364 | train_acc: 0.6500 | test_loss: 1.0393 | test_acc: 0.4583
Epoch: 20 | train_loss: 0.7228 | train_acc: 0.7167 | test_loss: 1.0826 | test_acc: 0.4500

Поэтому я Мне интересно, не хватает ли мне чего-то с точки зрения архитектуры, настройки гиперпараметров или чего-то еще, например отсутствия данных для таких моделей и так далее. Опять же, я новичок в этой теме, поэтому буду очень признателен за любые советы. Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... -cnn-model