Курс Python → Оценка точности модели

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

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

После того как модель переведена в режим тестирования и вычисление градиента отключено, мы можем приступить к оценке точности модели на тестовом наборе данных. Для этого вычисляем средние потери (loss) для каждого объекта в тестовом наборе. Затем суммируем потери и делим на общее количество объектов, чтобы получить среднюю потерю для всего тестового набора.

model.eval()

with torch.no_grad():
    for inputs, labels in test_loader:
        outputs = model(inputs)
        loss = criterion(outputs, labels)
        test_loss += loss.item()

После вычисления средних потерь на тестовом наборе данных, можно также оценить общую точность модели. Для этого можно использовать метрики оценки качества, такие как accuracy_score или confusion_matrix. Общая точность модели на тестовом наборе позволяет оценить ее работу и сравнить с другими моделями или параметрами обучения.

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

Автор урока

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

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

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

  1. Извлечение чисел из текста
  2. Подсчет элементов в списке с Counter
  3. Работа с контекст-менеджером «with»
  4. Аргументы *args и **kwargs
  5. Использование эмодзи в Python
  6. Приближение чисел в Python
  7. Переменные в Python: сокращение гласных
  8. Объединение кортежей в Python
  9. Асинхронное программирование с asyncio
  10. Поиск наиболее частого элемента списке
  11. Назначение максимального и минимального значения переменной в Python.
  12. Работа с timedelta в Python
  13. Передача аргументов через **arguments
  14. Использование super() в Python
  15. Возвращение нескольких значений
  16. Срезы в Python
  17. Декоратор total_ordering для сравнения объектов
  18. Определение имен функций
  19. Функция enumerate() — Python
  20. Работа с YAML в Python
  21. Работа с Colorama
  22. Логирование с Logzero
  23. EMOT преобразование эмодзи в текст
  24. Подсчет элементов с помощью Counter из collections
  25. Роль запятой в Python
  26. Метод сравнения объектов в Python
  27. Метод __irshift__ для Python
  28. Разделение строк методом split()
  29. Метод __call__ в Python
  30. Конкатенация строк с методом join()
  31. Инверсия списка и строки
  32. Создание треугольника Паскаля
  33. Тип CodeType в Python.
  34. Метод rlshift для битового сдвига
  35. Поиск шаблона в начале строки
  36. Определение функций с необязательными аргументами
  37. Создание словаря через dict comprehension
  38. Работа с модулем random
  39. Метод enumerate() в Python
  40. Фильтрация данных в Python.
  41. Исключение NotImplementedError
  42. Профилирование кода на Python
  43. OrderedDict — упорядоченный словарь
  44. Работа со строками в Python.
  45. Форматирование строк в Python
  46. Подчеркивание в REPL

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