MCPcopy Create free account
hub / github.com/VivekPa/AIAlpha / AutoEncoder

Class AutoEncoder

models/autoencoder.py:9–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7
8
9class AutoEncoder:
10 def __init__(self, encoding_dim, input_shape):
11 self.encoding_dim = encoding_dim
12 self.input_shape = input_shape
13
14 def build_model(self, encoded1_shape, encoded2_shape, decoded1_shape, decoded2_shape):
15 input_data = Input(shape=(1, self.input_shape))
16
17 # encoded1 = Dense(encoded1_shape, activation="relu", activity_regularizer=regularizers.l2(0))(input_data)
18 # encoded2 = Dense(encoded2_shape, activation="relu", activity_regularizer=regularizers.l2(0))(encoded1)
19 # encoded3 = Dense(self.encoding_dim, activation="relu", activity_regularizer=regularizers.l2(0))(encoded2)
20 # decoded1 = Dense(decoded1_shape, activation="relu", activity_regularizer=regularizers.l2(0))(encoded3)
21 # decoded2 = Dense(decoded2_shape, activation="relu", activity_regularizer=regularizers.l2(0))(decoded1)
22 # decoded = Dense(self.input_shape, activation="sigmoid", activity_regularizer=regularizers.l2(0))(decoded2)
23
24 encoded3 = Dense(self.encoding_dim, activation="relu", activity_regularizer=regularizers.l2(0))(input_data)
25 decoded = Dense(self.input_shape, activation="sigmoid", activity_regularizer=regularizers.l2(0))(encoded3)
26
27 self.autoencoder = Model(inputs=input_data, outputs=decoded)
28 self.encoder = Model(input_data, encoded3)
29
30 def train_model(self, model, data, epochs, model_name, save_model=True):
31
32 model.compile(loss="mean_squared_error", optimizer="adam", metrics=['acc', 'mae'])
33
34 train = data
35 ntrain = np.array(train)
36 train_data = np.reshape(ntrain, (len(ntrain), 1, self.input_shape))
37
38 model.fit(train_data, train_data, epochs=epochs)
39
40 if save_model:
41 model.save(f"models/saved_models/{model_name}.h5")
42
43 def test_model(self, model, data):
44 test = data
45 ntest = np.array(test)
46 test_data = np.reshape(ntest, (len(ntest), 1, self.input_shape))
47
48 print(model.evaluate(test_data, test_data))
49
50 def encode_data(self, data, csv_path, save_csv=True):
51 coded_train = []
52 for i in range(len(data)):
53 curr_data = np.array(data.iloc[i, :])
54 values = np.reshape(curr_data, (1, 1, self.input_shape))
55 coded = self.encoder.predict(values)
56 shaped = np.reshape(coded, (20,))
57 coded_train.append(shaped)
58
59 train_coded = pd.DataFrame(coded_train, index=np.arange(len(coded_train)), columns=np.arange(20))
60 if save_csv:
61 train_coded.to_csv(f"{csv_path}")
62 return train_coded
63

Callers 2

run.pyFile · 0.90
pca_auto.pyFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected