Этот коммит содержится в:
Sergey Kolpinskiy
2023-10-01 09:41:28 +03:00
родитель 9b05e1cd63
Коммит 61e1534751

Просмотреть файл

@@ -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]))