Advertisement
Guest User

classification2

a guest
Apr 5th, 2020
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | None | 0 0
  1. # liczba epok, epsilon(musi byc bardzo maly), learn_rate, momentunm, dane do trenowania zamienione (1->1,0,0),
  2. # dane do testowania, dane do testowania zamienione, liczba wejsc, dopuszczalny blad skutecznosci klasyf.,
  3. # nazwa pliku wyjsciowego
  4. def classification_test_table(epoch, epsilon, lr, momentum, train_data, train_data_conv, test_data, test_data_conv, n_inputs,
  5.                               correct_p, file_name):
  6.     with open(file_name, 'w', newline='') as fileOut:
  7.         writer = csv.writer(fileOut, delimiter=' ',
  8.                             quotechar=' ', quoting=csv.QUOTE_MINIMAL)
  9.         writer.writerow(
  10.             ['hidden_neurons', 'effect_train', 'standard_deviation_train', 'effect_test', 'standard_deviation_test'])
  11.         for i in range(20):  # THIS RUNS FOR A LONG TIME!!! BECAUSE ITS 100 times training the neural network
  12.             print(i + 1)
  13.             sum_effect_train_data = sum_effect_test_data = 0
  14.             effects_train_data = []
  15.             effects_test_data = []
  16.             for j in range(3):
  17.                 t_network = nn.NeuralNetwork(n_inputs, i + 1, 3, 1, lr, momentum, 0, 0)
  18.                 t_network.train_network(train_data_conv, epoch, epsilon)
  19.                 effect_train_data = classification_test(t_network, train_data_conv, train_data, n_inputs, correct_p)
  20.                 sum_effect_train_data += effect_train_data
  21.                 effects_train_data.append(effect_train_data)
  22.                 effect_test_data = classification_test(t_network, test_data_conv, test_data, n_inputs, correct_p)
  23.                 sum_effect_test_data += effect_test_data
  24.                 effects_test_data.append(effect_test_data)
  25.             effect_avg_train_data = sum_effect_train_data / len(effects_train_data)
  26.             effect_avg_test_data = sum_effect_test_data / len(effects_test_data)
  27.             standard_deviation_train_data = standard_deviation_test_data = 0
  28.             for j in effects_train_data:
  29.                 standard_deviation_train_data += ((j - effect_avg_train_data) ** 2)
  30.             for j in effects_test_data:
  31.                 standard_deviation_test_data += ((j - effect_avg_test_data) ** 2)
  32.             standard_deviation_train_data /= len(effects_train_data)
  33.             standard_deviation_test_data /= len(effects_test_data)
  34.             standard_deviation_train_data = np.sqrt(standard_deviation_train_data)
  35.             standard_deviation_test_data = np.sqrt(standard_deviation_test_data)
  36.             writer.writerow([i + 1, round(effect_avg_train_data, 4), round(standard_deviation_train_data, 4), round(effect_avg_test_data, 4), round(standard_deviation_test_data, 4)])
  37.  
  38.  
  39. lr = 0.6
  40. momentum = 0.1
  41. classification_test_table(n_epoch, 0.0000001, lr, momentum, data_train_conv, data_test, data_test_conv, 4, 0.5,
  42.                           'results/classification/classification_effect_table.txt')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement