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

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

Suggested prompts:

Can you explain what precision, recall, and F1-score mean?

How can I calculate precision, recall, and F1-score in PyTorch?

Why is it important to use metrics other than accuracy for imbalanced datasets?

Awesome!

Completion rate improved to 5

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