hidden = Layer(NUM_HIDDEN_NODES, input_data.shape[0], expit) output = Layer(len(input_files), NUM_HIDDEN_NODES, softmax) average_errors = np.ones(len(input_files)) accepted_errors = np.full(len(input_files), ACCEPTED_ERROR) while not np.all(np.less(average_errors, accepted_errors)): # get a random date input_data, expected_value = get_input_data(input_files) # process inputs outputs = output.process(hidden.process(input_data)) # calculate errors output.errors = expected_value - outputs hidden.errors = expit_prime(hidden.h) * np.dot(output.errors, output.weights) # update weights and biases output.update() hidden.update() average_errors = update_ema(output.errors, average_errors) print('last errors:\n', output.errors) print('last outputs:\n', outputs) print('last outputs rounded:\n', outputs.round()) #index = expected_value.nonzero()[0][0] #print('index of class:', index) #print('output of class:', outputs[index])