Курс Python → Тестирование модели в PyTorch

Для того чтобы эффективно оценивать работу нашей модели машинного обучения, необходимо определить метод тестирования. Этот метод позволит нам проверить качество работы модели на тестовом наборе данных и вывести точность предсказаний. Основное отличие метода тестирования от обучения заключается в том, что в процессе тестирования мы используем функцию model.eval(), чтобы перевести модель в режим тестирования. Также важно использовать torch.no_grad(), чтобы отключить вычисление градиента, поскольку во время тестирования обратное распространение не требуется.

Для начала необходимо перевести модель в режим тестирования с помощью функции model.eval(). Это гарантирует, что все слои модели будут работать в режиме тестирования, что может влиять на поведение некоторых слоев, таких как Dropout или BatchNorm. Затем мы используем torch.no_grad(), чтобы временно отключить автоматическое дифференцирование и вычисление градиента. Это позволяет ускорить процесс тестирования, поскольку не нужно хранить градиенты для обновления весов модели.


model.eval()

with torch.no_grad():
    for inputs, labels in test_loader:
        outputs = model(inputs)
        loss = criterion(outputs, labels)
        test_loss += loss.item()
        _, predicted = torch.max(outputs, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

test_accuracy = correct / total

Наконец, после прохождения всех тестовых данных, мы вычисляем средние потери для всего тестового набора и общую точность предсказаний. Это позволяет оценить, насколько хорошо модель обучилась и способна предсказывать значения на новых данных. Результаты тестирования помогут нам понять, какие улучшения можно внести в модель для повышения ее эффективности и точности предсказаний.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Функция count() в Python
  2. Операции со строками в Python
  3. Декоратор проверки активности
  4. Оператор «is not» в Python
  5. Переопределение метода __pow__
  6. Бинарный поиск
  7. Создание новых списков в Python
  8. Разбиение текста в Python
  9. Повторение и перенос строки
  10. Замена символов в строке
  11. Использование модуля __future__
  12. Генераторы и сеты в Python
  13. Удаление дубликатов из списка с помощью dict.fromkeys
  14. Явный импорт в Python
  15. Python enumerate() функции
  16. Переопределение метода __and__
  17. Создание тестовых данных с Faker
  18. Управление памятью в Python
  19. Объединение кортежей в Python
  20. Удаление ключа из словаря
  21. Анализ кода — Python
  22. Метод enumerate() в Python
  23. Разделение списка на гнппы
  24. Поиск индексов подстроки
  25. Объединение множеств в Python
  26. Оператор += для объединения строк
  27. Нахождение самого длинного слова в списке с помощью max
  28. Обработка ошибок в Python
  29. Списковое включение в Python
  30. Проверка класса объекта
  31. Удаление символов новой строки в Python.
  32. Добавление кнопки в tkinter
  33. Импорт модулей в Python 3.12
  34. Добавление цвета в консоли
  35. Создание панели меню Tkinter
  36. Enum в Python: создание и использование перечислений
  37. Распаковка аргументов в Python
  38. Быстрый поиск кода
  39. Работа с массивами в Python
  40. Оператор объединения словарей
  41. Исключение NotImplementedError
  42. Сравнение объектов в Python
  43. Python UserString — создание подклассов строк
  44. Преобразование объекта в строку

Marketello читают маркетологи из крутых компаний