Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Оцінювання Моделі | Нейронні Мережі в PyTorch
Основи PyTorch

bookОцінювання Моделі

Підготовка до оцінювання

Перед початком процесу оцінювання на тестовій вибірці необхідно переконатися у наступному:

  1. Перевести модель у режим оцінювання: використовуйте model.eval(), щоб вимкнути такі функції, як dropout і пакетну нормалізацію, забезпечуючи стабільну поведінку під час оцінювання;

  2. Вимкнути відстеження градієнтів: використовуйте torch.no_grad(), щоб зекономити пам'ять і пришвидшити обчислення, оскільки градієнти під час оцінювання не потрібні.

# Set the model to evaluation mode
model.eval()
# Disable gradient computation for evaluation
with torch.no_grad():
    # Forward pass on the test data
    test_predictions = model(X_test)

Перетворення передбачень

Як вже згадувалося раніше, вихід моделі — це логіти (сирі оцінки). Щоб отримати передбачені мітки класів, використовується torch.argmax для отримання індексу максимального значення вздовж виміру класу.

# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)

Обчислення метрик

Для задач класифікації точність є корисною базовою метрикою, якщо датасет збалансований.

# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")

Для отримання глибшого розуміння ефективності моделі можна обчислити додаткові метрики, такі як точність (precision), повнота (recall) та F1-міра (F1-score). Детальніше про ці метрики та їх формули можна дізнатися у цій статті, використовуючи відповідні формули.

Повна реалізація

123456789101112131415161718
import torch import os os.system('wget https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_3/model_training.py 2>/dev/null') from model_training import model, X_test, y_test # Set model to evaluation mode model.eval() # Disable gradient tracking with torch.no_grad(): # Forward pass test_predictions = model(X_test) # Get predicted classes predicted_labels = torch.argmax(test_predictions, dim=1) # Calculate accuracy correct_predictions = (predicted_labels == y_test).sum().item() accuracy = correct_predictions / len(y_test) * 100 print(f"Test accuracy: {accuracy:.2f}%")
copy
question mark

Який з наступних кроків є необхідним під час оцінювання навченої моделі PyTorch?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookОцінювання Моделі

Свайпніть щоб показати меню

Підготовка до оцінювання

Перед початком процесу оцінювання на тестовій вибірці необхідно переконатися у наступному:

  1. Перевести модель у режим оцінювання: використовуйте model.eval(), щоб вимкнути такі функції, як dropout і пакетну нормалізацію, забезпечуючи стабільну поведінку під час оцінювання;

  2. Вимкнути відстеження градієнтів: використовуйте torch.no_grad(), щоб зекономити пам'ять і пришвидшити обчислення, оскільки градієнти під час оцінювання не потрібні.

# Set the model to evaluation mode
model.eval()
# Disable gradient computation for evaluation
with torch.no_grad():
    # Forward pass on the test data
    test_predictions = model(X_test)

Перетворення передбачень

Як вже згадувалося раніше, вихід моделі — це логіти (сирі оцінки). Щоб отримати передбачені мітки класів, використовується torch.argmax для отримання індексу максимального значення вздовж виміру класу.

# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)

Обчислення метрик

Для задач класифікації точність є корисною базовою метрикою, якщо датасет збалансований.

# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")

Для отримання глибшого розуміння ефективності моделі можна обчислити додаткові метрики, такі як точність (precision), повнота (recall) та F1-міра (F1-score). Детальніше про ці метрики та їх формули можна дізнатися у цій статті, використовуючи відповідні формули.

Повна реалізація

123456789101112131415161718
import torch import os os.system('wget https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_3/model_training.py 2>/dev/null') from model_training import model, X_test, y_test # Set model to evaluation mode model.eval() # Disable gradient tracking with torch.no_grad(): # Forward pass test_predictions = model(X_test) # Get predicted classes predicted_labels = torch.argmax(test_predictions, dim=1) # Calculate accuracy correct_predictions = (predicted_labels == y_test).sum().item() accuracy = correct_predictions / len(y_test) * 100 print(f"Test accuracy: {accuracy:.2f}%")
copy
question mark

Який з наступних кроків є необхідним під час оцінювання навченої моделі PyTorch?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3
some-alt