Skip to content

Latest commit

 

History

History
105 lines (73 loc) · 5.11 KB

File metadata and controls

105 lines (73 loc) · 5.11 KB

ИИ для ЦОС №10 (2024): Выбор лучших параметров сверточной нейронной сети

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

Структура проекта

Файлы

  1. add_90_95_accuracy.py

    • Добавляет в основной файл результатов (results/hyperparameter_results.csv) столбцы:
      • epoch_90_accuracy: номер эпохи, на которой достигнута точность >= 90%.
      • epoch_95_accuracy: номер эпохи, на которой достигнута точность >= 95%.
    • Источник данных — файлы статистики по эпохам (results/per_run_stats/run_*.csv).
  2. analysis/all_plots.py

    • Строит два графика:
      • График точности на тестовой выборке (val_accuracy) для всех экспериментов.
      • График потерь на тестовой выборке (val_loss) для всех экспериментов.
    • На каждом графике отображаются линии тренда 1-го, 2-го и 3-го порядка.
    • Сохраняет графики в папку plots.
  3. analysis/correlation_matrix.py

    • Строит матрицу корреляции между:
      • Гиперпараметрами: num_hidden_layers, neurons_per_layer, epochs, batch_size.
      • Ключевыми метриками: test_accuracy, training_time_sec, epoch_90_accuracy, epoch_95_accuracy.
    • Выводит корреляции в консоль, отсортированные по модулю (с сохранением знака).
    • Сохраняет тепловую карту матрицы корреляции.

Папки

  • results/

    • Хранит результаты всех экспериментов и статистику по эпохам.
    • hyperparameter_results.csv: основной файл результатов с гиперпараметрами и метриками.
    • per_run_stats/run_*.csv: файлы со статистикой по эпохам для каждого эксперимента.
  • plots/

    • batch_size_vs_accuracy.png: график зависимости точности от размера пакета.
    • epochs_vs_accuracy.png: график зависимости точности от количества эпох.
    • layers_vs_accuracy.png: график зависимости точности от количества слоев.'
    • neurons_vs_accuracy.png: график зависимости точности от количества нейронов в слое.

Как использовать

1. Подготовка окружения

  1. Склонируйте репозиторий
  2. Создайте и активируйте виртуальное окружение
  3. Установите зависимости:
    pip install -r requirements.txt
  4. Перенесите папки train_dir, test_dir, val_dir из старого кода Тутыгина в папку lab10/data.

2. Запуск

Запустите основной скрипт перебора гиперпараметров, на ноутбуке крутится около 20 минут:

python main.py

Запустите скрипт add_90_95_accuracy.py, чтобы добавить данные об эпохе достижении точности 90% и 95%:

python add_90_95_accuracy.py

В файл results/hyperparameter_results.csv добавятся столбцы epoch_90_accuracy и epoch_95_accuracy.


3. Построение графиков

Чтобы построить графики точности и потерь для всех экспериментов:

python analysis/all_plots.py

После выполнения:

  • В папке plots появятся файлы:
    • test_accuracy_plot.png: график точности.
    • test_loss_plot.png: график потерь.

4. Анализ корреляций

Для построения матрицы корреляции и анализа взаимосвязей между параметрами:

python analysis/correlation_matrix.py

После выполнения:

  • В консоль будут выведены отсортированные корреляции.
  • В папке results появится файл filtered_correlation_matrix.png с визуализацией.