ответвлено от main/is_dnn
исправление отчета
Этот коммит содержится в:
Двоичные данные
.DS_Store
поставляемый
Двоичные данные
.DS_Store
поставляемый
Двоичный файл не отображается.
Двоичные данные
labworks/.DS_Store
поставляемый
Двоичные данные
labworks/.DS_Store
поставляемый
Двоичный файл не отображается.
@@ -303,16 +303,40 @@ test_letter_normalized = scaler.transform(test_letter)
|
||||
Создан и обучен автокодировщик с подходящей для данных архитектурой на ненормализованных данных. Выбрано необходимое количество эпох обучения.
|
||||
|
||||
```python
|
||||
# Обучение на ненормализованных данных
|
||||
with patch('builtins.input', side_effect=['1', '11', '48 36 24 16 8 4 8 16 24 36 48']):
|
||||
# Обучение автокодировщика для Letter на НЕнормализованных данных
|
||||
# Входной и выходной слои создаются автоматически по размеру данных (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(
|
||||
train_letter,
|
||||
'out/Letter_AE_raw.h5',
|
||||
'out/Letter_AE_raw_ire_th.txt',
|
||||
20000, # epochs
|
||||
True, # verbose_show
|
||||
200, # patience
|
||||
100000, # epochs
|
||||
False, # verbose_show
|
||||
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
|
||||
@@ -324,16 +348,35 @@ with patch('builtins.input', side_effect=['1', '11', '48 36 24 16 8 4 8 16 24 36
|
||||
Создан и обучен автокодировщик с той же архитектурой на нормализованных данных для сравнения результатов.
|
||||
|
||||
```python
|
||||
# Обучение на нормализованных данных
|
||||
with patch('builtins.input', side_effect=['1', '11', '48 36 24 16 8 4 8 16 24 36 48']):
|
||||
# Обучение автокодировщика для Letter на нормализованных данных
|
||||
# Та же архитектура для сравнения: 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(
|
||||
train_letter_normalized,
|
||||
'out/Letter_AE_norm.h5',
|
||||
'out/Letter_AE_norm_ire_th.txt',
|
||||
20000, # epochs
|
||||
True, # verbose_show
|
||||
200, # patience
|
||||
True, # verbose_show
|
||||
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) Сравнение результатов обучения
|
||||
|
||||
Ссылка в новой задаче
Block a user