исправление отчета

main
Troyanov Daniil 3 месяцев назад
Родитель 4f43b51700
Сommit 5ef722a5f7

Двоичные данные
.DS_Store поставляемый

Двоичный файл не отображается.

Двоичные данные
labworks/.DS_Store поставляемый

Двоичный файл не отображается.

@ -303,16 +303,40 @@ test_letter_normalized = scaler.transform(test_letter)
Создан и обучен автокодировщик с подходящей для данных архитектурой на ненормализованных данных. Выбрано необходимое количество эпох обучения. Создан и обучен автокодировщик с подходящей для данных архитектурой на ненормализованных данных. Выбрано необходимое количество эпох обучения.
```python ```python
# Обучение на ненормализованных данных # Обучение автокодировщика для Letter на НЕнормализованных данных
with patch('builtins.input', side_effect=['1', '11', '48 36 24 16 8 4 8 16 24 36 48']): # Входной и выходной слои создаются автоматически по размеру данных (32 признака)
# Мы задаем только скрытые слои
# Полная архитектура: 32(вход) -> 100 -> 68 -> 48 -> 32 -> 24 -> 16 -> 8 -> 16 -> 24 -> 32 -> 48 -> 64 -> 100 -> 32(выход)
# 11 скрытых слоев: 100 64 48 32 24 16 8 16 24 32 48 64 100
import warnings
# Подавляем предупреждение о формате сохранения HDF5
warnings.filterwarnings('ignore', category=UserWarning, module='absl')
print('Обучение автокодировщика для данных Letter (НЕнормализованные данные)...')
print('Архитектура: 32(вход) -> 100 -> 68 -> 48 -> 32 -> 24 -> 16 -> 8 -> 16 -> 24 -> 32 -> 48 -> 64 -> 100 -> 32(выход)')
# Автоматизируем ввод для выбора пользовательской архитектуры
with patch('builtins.input', side_effect=['1', '17', ' 100 86 72 64 48 32 24 16 8 16 24 32 48 64 72 86 100']):
ae_letter_raw, IRE_letter_raw, IREth_letter_raw = lib.create_fit_save_ae( ae_letter_raw, IRE_letter_raw, IREth_letter_raw = lib.create_fit_save_ae(
train_letter, train_letter,
'out/Letter_AE_raw.h5', 'out/Letter_AE_raw.h5',
'out/Letter_AE_raw_ire_th.txt', 'out/Letter_AE_raw_ire_th.txt',
20000, # epochs 100000, # epochs
True, # verbose_show False, # verbose_show
200, # patience 10000, # patience
verbose_every_n_epochs=500
) )
# Вычисление MSE из предсказания
X_pred_letter_raw = ae_letter_raw.predict(train_letter, verbose=0)
mse_letter_raw = np.mean((train_letter - X_pred_letter_raw) ** 2)
print(f'\nОбучение завершено (НЕнормализованные данные)!')
print(f'MSE_stop (приблизительно): {mse_letter_raw:.6f}')
print(f'Порог IRE: {IREth_letter_raw:.6f}')
print(f'Количество скрытых слоев: 11')
print(f'Количество нейронов в скрытых слоях: 100 -> 68 -> 48 -> 32 -> 24 -> 16 -> 8 -> 16 -> 24 -> 32 -> 48 -> 64 -> 100')
``` ```
Архитектура: 32 → 100 → 68 → 48 → 32 → 24 → 16 → 8 → 16 → 24 → 32 → 48 → 64 → 100 → 32 Архитектура: 32 → 100 → 68 → 48 → 32 → 24 → 16 → 8 → 16 → 24 → 32 → 48 → 64 → 100 → 32
@ -324,16 +348,35 @@ with patch('builtins.input', side_effect=['1', '11', '48 36 24 16 8 4 8 16 24 36
Создан и обучен автокодировщик с той же архитектурой на нормализованных данных для сравнения результатов. Создан и обучен автокодировщик с той же архитектурой на нормализованных данных для сравнения результатов.
```python ```python
# Обучение на нормализованных данных # Обучение автокодировщика для Letter на нормализованных данных
with patch('builtins.input', side_effect=['1', '11', '48 36 24 16 8 4 8 16 24 36 48']): # Та же архитектура для сравнения: 32(вход) -> 100 -> 68 -> 48 -> 32 -> 24 -> 16 -> 8 -> 16 -> 24 -> 32 -> 48 -> 64 -> 100 -> 32(выход)
# 11 скрытых слоев: 100 86 72 64 48 32 24 16 8 16 24 32 48 64 72 86 100
print('Обучение автокодировщика для данных Letter (нормализованные данные)...')
print('Архитектура: 32(вход) -> 100 -> 68 -> 48 -> 32 -> 24 -> 16 -> 8 -> 16 -> 24 -> 32 -> 48 -> 64 -> 100 -> 32(выход)')
# Автоматизируем ввод для выбора пользовательской архитектуры
with patch('builtins.input', side_effect=['1', '17', ' 100 86 72 64 48 32 24 16 8 16 24 32 48 64 72 86 100']):
ae_letter_norm, IRE_letter_norm, IREth_letter_norm = lib.create_fit_save_ae( ae_letter_norm, IRE_letter_norm, IREth_letter_norm = lib.create_fit_save_ae(
train_letter_normalized, train_letter_normalized,
'out/Letter_AE_norm.h5', 'out/Letter_AE_norm.h5',
'out/Letter_AE_norm_ire_th.txt', 'out/Letter_AE_norm_ire_th.txt',
20000, # epochs 20000, # epochs
True, # verbose_show True, # verbose_show
200, # patience 200, # patience
verbose_every_n_epochs=500
) )
# Вычисление MSE из предсказания
X_pred_letter_norm = ae_letter_norm.predict(train_letter_normalized, verbose=0)
mse_letter_norm = np.mean((train_letter_normalized - X_pred_letter_norm) ** 2)
print(f'\nОбучение завершено (нормализованные данные)!')
print(f'MSE_stop (приблизительно): {mse_letter_norm:.6f}')
print(f'Порог IRE: {IREth_letter_norm:.6f}')
print(f'Количество скрытых слоев: 11')
print(f'Количество нейронов в скрытых слоях: 100 -> 68 -> 48 -> 32 -> 24 -> 16 -> 8 -> 16 -> 24 -> 32 -> 48 -> 64 -> 100')
``` ```
### 7) Сравнение результатов обучения ### 7) Сравнение результатов обучения

Загрузка…
Отмена
Сохранить