Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
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)