From 61e1534751db6338656274184a6ce70241be2a68 Mon Sep 17 00:00:00 2001 From: Sergey Kolpinskiy Date: Sun, 1 Oct 2023 09:41:28 +0300 Subject: [PATCH] clean lab02_lib code --- labworks/LW2/lab02_lib.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/labworks/LW2/lab02_lib.py b/labworks/LW2/lab02_lib.py index ac7ea56..ec90383 100644 --- a/labworks/LW2/lab02_lib.py +++ b/labworks/LW2/lab02_lib.py @@ -18,7 +18,7 @@ from matplotlib import pyplot from pandas import DataFrame import numpy as np import matplotlib.pylab as plt -#import aes_lib as aes + import tensorflow.keras import numpy as np import math @@ -29,9 +29,7 @@ from pandas import DataFrame from sklearn.metrics import precision_score, recall_score, f1_score, confusion_matrix from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Activation -#from tensorflow.keras.utils import to_categorical -#from sklearn.metrics import zero_one_loss -#from sklearn.metrics import confusion_matrix + visual = True @@ -104,35 +102,39 @@ def create_fit_save_ae(cl_train, ae_file, irefile, epohs, verbose_show, patience # Ниже строки читать входные данные пользователя с помощью функции map () ae_arch = list(map(int, input("Задайте архитектуру скрытых слоёв автокодировщика, например, в виде 3 1 3 : ").strip().split()))[:n] ae = tensorflow.keras.models.Sequential() + + # input layer ae.add(tensorflow.keras.layers.Dense(size)) ae.add(tensorflow.keras.layers.Activation('tanh')) + + # hidden layers for i in range(len(ae_arch)): ae.add(tensorflow.keras.layers.Dense(ae_arch[i])) ae.add(tensorflow.keras.layers.Activation('tanh')) + + # output layer ae.add(tensorflow.keras.layers.Dense(size)) ae.add(tensorflow.keras.layers.Activation('linear')) else: ae = tensorflow.keras.models.Sequential() + + # input layer ae.add(tensorflow.keras.layers.Dense(size)) ae.add(tensorflow.keras.layers.Activation('tanh')) + + # hidden layers ae.add(tensorflow.keras.layers.Dense(3)) ae.add(tensorflow.keras.layers.Activation('tanh')) - #ae.add(tensorflow.keras.layers.Dense(4)) - #ae.add(tensorflow.keras.layers.Activation('tanh')) - #ae.add(tensorflow.keras.layers.Dense(5)) - #ae.add(tensorflow.keras.layers.Activation('tanh')) ae.add(tensorflow.keras.layers.Dense(2)) ae.add(tensorflow.keras.layers.Activation('tanh')) ae.add(tensorflow.keras.layers.Dense(1)) ae.add(tensorflow.keras.layers.Activation('tanh')) ae.add(tensorflow.keras.layers.Dense(2)) ae.add(tensorflow.keras.layers.Activation('tanh')) - #ae.add(tensorflow.keras.layers.Dense(5)) - #ae.add(tensorflow.keras.layers.Activation('tanh')) - #ae.add(tensorflow.keras.layers.Dense(4)) - #ae.add(tensorflow.keras.layers.Activation('tanh')) ae.add(tensorflow.keras.layers.Dense(3)) ae.add(tensorflow.keras.layers.Activation('tanh')) + + # output layer ae.add(tensorflow.keras.layers.Dense(size)) ae.add(tensorflow.keras.layers.Activation('linear')) @@ -176,11 +178,7 @@ def test(y_pred, Y_test): def predict_ae(nn, x_test, threshold): x_test_predicted = nn.predict(x_test) ire = ire_array(x_test, x_test_predicted) - # Расчет ошибки при нормализации: иначе закоментировать и раскоментировать 81 и 82 - #x_test_norm = norm_array(x_test, 0) - #x_test_predicted_norm = nn.predict(x_test_norm) - #x_test_predicted = norm_array(x_test_predicted_norm, 1) - #ire = ire_array(x_test, x_test_predicted) + predicted_labels = (ire > threshold).astype(float) predicted_labels = predicted_labels.reshape((predicted_labels.shape[0], 1)) ire = np.transpose(np.array([ire]))