def train(self, test_type):
     print("Initial network:\n" + str(self))
     for time in range(constants.ITERATION_TRAIN):
         ind = random.randint(0, len(self.training_ind) - 1)
         file_no = self.training_ind[ind]
         target = self.assign_target_value(test_type, self.file_names[file_no])
         data = load_data.reduce_dimension(load_data.parse_file(self.file_names[file_no]))
         input_val = []
         for d in data:
             input_val.extend(d)
         # 255 is maximum gray-scale value
         input_val = [i/255.0 for i in input_val]
         self.train_example(input_val, target)
     print("Finished network:\n" + str(self))
 def test(self, test_type):
     correct = 0
     for ind in range(len(self.test_ind)):
         file_no = self.test_ind[ind]
         target = self.assign_target_value(test_type, self.file_names[file_no])
         data = load_data.reduce_dimension(load_data.parse_file(self.file_names[file_no]))
         input_val = []
         for d in data:
             input_val.extend(d)
         # 255 is maximum gray-scale value
         input_val = [i/255.0 for i in input_val]
         output = self.calculate_output_output(self.calculate_hidden_output(input_val))
         if self.check_if_correct_output(test_type, target, output):
             correct += 1
     print("Correctly classified: " + str(correct) + "/" + str(len(self.test_ind)))