def three_point_five_second_bullet(): filepath = r"data/pict.dat" pictures_matrix = ld.get_pictures(filepath) # Learning number_of_random_samples = 15 max_training_num = np.arange(3, 4 + number_of_random_samples, 1) # [3,4, 5, 6, 7] np.random.seed(42) max_iter = 1 percentage_check = np.arange(15, 20, 5) training = np.zeros((3 + number_of_random_samples, pictures_matrix.shape[1] * pictures_matrix.shape[2])) for i in range(3): training[i] = np.ravel(pictures_matrix[i]) for i in range(number_of_random_samples): training[i + 3] = get_random_image() accuracy_mean = accuracy_with_sample_images(percentage_check, max_training_num, max_iter, training) plt.plot(max_training_num, accuracy_mean[0, :, 0], label='p1') plt.plot(max_training_num, accuracy_mean[0, :, 1], label='p2') plt.plot(max_training_num, accuracy_mean[0, :, 2], label='p3') plt.title("Accuracy as a function of Number of Pictures Memorized") plt.legend() plt.xlabel("Number of Patterns memorized-trained on") plt.ylabel("Accuracy (% pixels)") plt.show()
def three_point_five_first_bullet(): # Load data filepath = r"data/pict.dat" pictures_matrix = ld.get_pictures(filepath) # Learning max_training_num = [3, 4, 5, 6, 7] training = np.zeros((max_training_num[-1], pictures_matrix.shape[1] * pictures_matrix.shape[2])) for i in range(max_training_num[-1]): training[i] = np.ravel(pictures_matrix[i]) np.random.seed(42) max_iter = 5 percentage_check = np.arange(15, 20, 5) accuracy_mean = accuracy_with_sample_images(percentage_check, max_training_num, max_iter, training) plt.plot(max_training_num, accuracy_mean[0, :, 0], label='p1') plt.plot(max_training_num, accuracy_mean[0, :, 1], label='p2') plt.plot(max_training_num, accuracy_mean[0, :, 2], label='p3') plt.title("Accuracy as a function of Number of Pictures Memorized") plt.legend() plt.xlabel("Number of Patterns memorized-trained on") plt.ylabel("Accuracy (% pixels)") plt.show()
import load_data as ld import functions as fun import numpy as np import matplotlib.pyplot as plt filepath = r"data/pict.dat" pictures_matrix = ld.get_pictures(filepath) # for i in range(pictures_matrix.shape[0]): # plt.imshow(pictures_matrix[i]) # plt.show() number_training = 3 number_of_distorted = 2 training = np.zeros( (number_training, pictures_matrix.shape[1] * pictures_matrix.shape[2])) for i in range(number_training): training[i] = np.ravel(pictures_matrix[i]) weights = fun.fit(training) #Taking distorted patterns distorted = np.zeros( (number_of_distorted, pictures_matrix.shape[1] * pictures_matrix.shape[2])) distorted[0] = np.ravel(pictures_matrix[9]) distorted[1] = np.ravel(pictures_matrix[10]) #Energy at attractors print('Energy of Attractors') for i in range(number_training): energy = fun.compute_lyapunov_energy(training[i].reshape(1, -1), weights) print(energy)