Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # liczba epok, epsilon(musi byc bardzo maly), learn_rate, momentunm, dane do trenowania zamienione (1->1,0,0),
- # dane do testowania, dane do testowania zamienione, liczba wejsc, dopuszczalny blad skutecznosci klasyf.,
- # nazwa pliku wyjsciowego
- def classification_test_table(epoch, epsilon, lr, momentum, train_data, train_data_conv, test_data, test_data_conv, n_inputs,
- correct_p, file_name):
- with open(file_name, 'w', newline='') as fileOut:
- writer = csv.writer(fileOut, delimiter=' ',
- quotechar=' ', quoting=csv.QUOTE_MINIMAL)
- writer.writerow(
- ['hidden_neurons', 'effect_train', 'standard_deviation_train', 'effect_test', 'standard_deviation_test'])
- for i in range(20): # THIS RUNS FOR A LONG TIME!!! BECAUSE ITS 100 times training the neural network
- print(i + 1)
- sum_effect_train_data = sum_effect_test_data = 0
- effects_train_data = []
- effects_test_data = []
- for j in range(3):
- t_network = nn.NeuralNetwork(n_inputs, i + 1, 3, 1, lr, momentum, 0, 0)
- t_network.train_network(train_data_conv, epoch, epsilon)
- effect_train_data = classification_test(t_network, train_data_conv, train_data, n_inputs, correct_p)
- sum_effect_train_data += effect_train_data
- effects_train_data.append(effect_train_data)
- effect_test_data = classification_test(t_network, test_data_conv, test_data, n_inputs, correct_p)
- sum_effect_test_data += effect_test_data
- effects_test_data.append(effect_test_data)
- effect_avg_train_data = sum_effect_train_data / len(effects_train_data)
- effect_avg_test_data = sum_effect_test_data / len(effects_test_data)
- standard_deviation_train_data = standard_deviation_test_data = 0
- for j in effects_train_data:
- standard_deviation_train_data += ((j - effect_avg_train_data) ** 2)
- for j in effects_test_data:
- standard_deviation_test_data += ((j - effect_avg_test_data) ** 2)
- standard_deviation_train_data /= len(effects_train_data)
- standard_deviation_test_data /= len(effects_test_data)
- standard_deviation_train_data = np.sqrt(standard_deviation_train_data)
- standard_deviation_test_data = np.sqrt(standard_deviation_test_data)
- 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)])
- lr = 0.6
- momentum = 0.1
- classification_test_table(n_epoch, 0.0000001, lr, momentum, data_train_conv, data_test, data_test_conv, 4, 0.5,
- 'results/classification/classification_effect_table.txt')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement