Курс 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"
- ChainMap избыточные ключи
- Конвертация коллекций в Python.
- Методы list в Python
- Повторение элементов в Python
- Частичное применение функций в Python
- Работа с индексами списков
- Частичное совпадение пользовательского ввода в Python 3.10
- Combobox в Tkinter
- Определение наиболее частого элемента с помощью collections.Counter
- Именование столбцов в Python с pandas
- Изменение логики работы с временем
- Чтение и запись TOML-конфигов
- Печать в одной строке
- Модуль itertools: комбинации и перестановки
- Работа с модулем glob в Python
- Python: изменяемые и неизменяемые коллекции
- Наследование в программировании
- GitHub в Telegram: подписка на уведомления
- Нан-рефлексивность в Python
- Срезы в Python
- Операции с датами в Python
- Функция enumerate в Python
- Функция zip() — объединение последовательностей
- Улучшение читаемости кода в Python
- Генераторы в Python
- Инвертирование словаря
- Установка и использование Python-dateutil
- Копирование и вставка текста в Python
- Автоматизация действий с Pyautogui
- Работа с аргументами командной строки
- Раздувающийся словарь в Python
- Подсказки типов в Python
- Работа с CSV файлами
- Управление сессиями в Python
- Работа с CSV файлами в Python
- Форматирование чисел в Python
- Функция enumerate() в Python
- Повторение элементов в Python
- Определение функций с необязательными аргументами
- Принципы Zen Python
- Генераторы в Python
- Объединение словарей в Python
- Функция format() в Python
- Модуль xkcd: добавление юмора в Python
- Оптимизация гиперпараметров в Python
- Парсинг статей с Newspaper3k















