import numpy as np

pca8_MNIST_L3 = np.array([0.5366430260047281, 0.9867612293144208, 0.9744680851063829, 0.9768321513002364, 0.9820330969267139, 0.9773049645390071, 0.9749408983451536, 0.9787234042553191, 0.984869976359338, 0.957919621749409 ])
ae8_MNIST_L3 = np.array([0.8297872340425532, 0.9352245862884161, 0.9635933806146572, 0.857210401891253, 0.5366430260047281, 0.9702127659574468, 0.9919621749408983, 0.9730496453900709, 0.9877068557919622, 0.9957446808510638])
pca16_MNIST_L3 = np.array([0.984869976359338, 0.9843971631205674, 0.5366430260047281, 0.9891252955082742, 0.9801418439716312, 0.9825059101654846, 0.8898345153664302, 0.9806146572104019, 0.9886524822695035, 0.9881796690307328])
ae16_MNIST_L3 = np.array([0.9252955082742317, 0.9796690307328605, 0.9371158392434988, 0.9593380614657211, 0.9877068557919622, 0.9314420803782506, 0.9744680851063829, 0.9602836879432625, 0.9730496453900709, 0.9191489361702128])

pca8_FASHION_L3 = np.array([0.86, 0.9225, 0.808, 0.932, 0.8995, 0.915, 0.929, 0.899, 0.9265, 0.851])
ae8_FASHION_L3 = np.array([0.941, 0.8605, 0.9395, 0.903, 0.8975, 0.9545, 0.933, 0.9515, 0.9355, 0.9225])
pca16_FASHION_L3 = np.array([0.9235, 0.9395, 0.918, 0.913, 0.898, 0.884, 0.946, 0.901, 0.947, 0.9155])
ae16_FASHION_L3 = np.array([0.948, 0.8935, 0.9435, 0.914, 0.968, 0.931, 0.929, 0.9635, 0.9205, 0.9455])

pca8_MNIST_L2 = np.array([0.9215130023640662, 0.8940898345153664, 0.9810874704491725, 0.9588652482269504, 0.9423167848699764, 0.9801418439716312, 0.9541371158392435, 0.5366430260047281, 0.9768321513002364, 0.9588652482269504])
ae8_MNIST_L2 = np.array([0.885579196217494, 0.5366430260047281, 0.9560283687943263, 0.8141843971631205, 0.9026004728132387, 0.5366430260047281, 0.8964539007092198, 0.8539007092198582, 0.9777777777777777, 0.9130023640661938])
pca16_MNIST_L2 = np.array([0.8676122931442081, 0.9815602836879432, 0.9853427895981087, 0.9877068557919622, 0.9687943262411347, 0.9843971631205674, 0.9829787234042553, 0.9886524822695035, 0.9730496453900709, 0.9815602836879432])
ae16_MNIST_L2 = np.array([0.9583924349881797, 0.9479905437352246, 0.8912529550827423, 0.5366430260047281, 0.8964539007092198, 0.9030732860520094, 0.9030732860520094, 0.9673758865248226, 0.806146572104019, 0.5366430260047281])

pca8_FASHION_L2 = np.array([0.5, 0.803, 0.5, 0.856, 0.946, 0.9245, 0.906, 0.9395, 0.921, 0.925])
ae8_FASHION_L2 = np.array([0.5, 0.9195, 0.936, 0.921, 0.815, 0.926, 0.9125, 0.944, 0.907, 0.8985])
pca16_FASHION_L2 = np.array([0.9, 0.5, 0.8365, 0.9305, 0.5, 0.915, 0.9355, 0.927, 0.9395, 0.5])
ae16_FASHION_L2 = np.array([0.5, 0.5, 0.905, 0.93, 0.9, 0.9375, 0.89, 0.5, 0.9195, 0.9145])

print("CNN Result")
print("3 Layers - 44 params(8 input) / 56 params (16 input) ")
print("PCA8(MNIST): " + str(pca8_MNIST_L3.mean()) + " +/- " + str(pca8_MNIST_L3.std()))
print("AE8(MNIST): " + str(ae8_MNIST_L3.mean()) + " +/- " + str(ae8_MNIST_L3.std()))
print("PCA16(MNIST): " + str(pca16_MNIST_L3.mean()) + " +/- " + str(pca16_MNIST_L3.std()))
print("AE16(MNIST): " + str(ae16_MNIST_L3.mean()) + " +/- " + str(ae16_MNIST_L3.std()))
print("\n")
print("PCA8(FASHION): " + str(pca8_FASHION_L3.mean()) + " +/- " + str(pca8_FASHION_L3.std()))
print("AE8(FASHION): " + str(ae8_FASHION_L3.mean()) + " +/- " + str(ae8_FASHION_L3.std()))
print("PCA16(FASHION): " + str(pca16_FASHION_L3.mean()) + " +/- " + str(pca16_FASHION_L3.std()))
print("AE16(FASHION): " + str(ae16_FASHION_L3.mean()) + " +/- " + str(ae16_FASHION_L3.std()))
print("\n")
print("2 Layers - 26 params(8 input) / 34 params (16 input) ")
print("PCA8(MNIST): " + str(pca8_MNIST_L2.mean()) + " +/- " + str(pca8_MNIST_L2.std()))
print("AE8(MNIST): " + str(ae8_MNIST_L2.mean()) + " +/- " + str(ae8_MNIST_L2.std()))
print("PCA16(MNIST): " + str(pca16_MNIST_L2.mean()) + " +/- " + str(pca16_MNIST_L2.std()))
print("AE16(MNIST): " + str(ae16_MNIST_L2.mean()) + " +/- " + str(ae16_MNIST_L2.std()))
print("\n")
print("PCA8(FASHION): " + str(pca8_FASHION_L2.mean()) + " +/- " + str(pca8_FASHION_L2.std()))
print("AE8(FASHION): " + str(ae8_FASHION_L2.mean()) + " +/- " + str(ae8_FASHION_L2.std()))
print("PCA16(FASHION): " + str(pca16_FASHION_L2.mean()) + " +/- " + str(pca16_FASHION_L2.std()))
print("AE16(FASHION): " + str(ae16_FASHION_L2.mean()) + " +/- " + str(ae16_FASHION_L2.std()))




