Пример #1
0
    def solve(self,
              input_train_data,
              target_train_data,
              input_val_data,
              target_val_data,
              model,
              callback=None):
        if not isinstance(model, PerceptronModel):
            raise ValueError(
                'PerceptronSolver can only solve for PerceptronModel')
        # convert numpy arrays to util.Counters and lists
        print("Converting numpy arrays to counters and lists...")
        rows = input_train_data.shape[0]
        input_train_data = np.c_[input_train_data, np.ones((rows, 1))]
        input_train_data = util.counters_from_numpy_array(input_train_data)
        target_train_data = util.list_from_numpy_array_one_hot(
            target_train_data)

        rows = input_val_data.shape[0]
        input_val_data = np.c_[input_val_data, np.ones((rows, 1))]
        input_val_data = util.counters_from_numpy_array(input_val_data)
        target_val_data = util.list_from_numpy_array_one_hot(target_val_data)
        print("... done")

        if callback is None or self.plot == 0:
            train_callback = None
        else:
            train_callback = lambda: callback(model)

        model.train(input_train_data,
                    target_train_data,
                    input_val_data,
                    target_val_data,
                    iterations=self.iterations,
                    callback=train_callback)
Пример #2
0
    def solve(self, input_train_data, target_train_data, input_val_data, target_val_data, model, callback=None):
        if not isinstance(model, PerceptronModel):
            raise ValueError('PerceptronSolver can only solve for PerceptronModel')
        # convert numpy arrays to util.Counters and lists
        print("Converting numpy arrays to counters and lists...")
        rows = input_train_data.shape[0]
        input_train_data = np.c_[input_train_data, np.ones((rows,1))]
        input_train_data = util.counters_from_numpy_array(input_train_data)
        target_train_data = util.list_from_numpy_array_one_hot(target_train_data)

        rows = input_val_data.shape[0]
        input_val_data = np.c_[input_val_data, np.ones((rows,1))]
        input_val_data = util.counters_from_numpy_array(input_val_data)
        target_val_data = util.list_from_numpy_array_one_hot(target_val_data)
        print("... done")

        if callback is None or self.plot == 0:
            train_callback = None
        else:
            train_callback = lambda: callback(model)

        model.train(input_train_data, target_train_data,
                    input_val_data, target_val_data,
                    iterations=self.iterations, callback=train_callback)
Пример #3
0
 def accuracy(self, input_data, target_data):
     if isinstance(input_data, np.ndarray):
         input_data = util.counters_from_numpy_array(input_data)
     if isinstance(target_data, np.ndarray):
         target_data = util.list_from_numpy_array_one_hot(target_data)
     return PerceptronClassifier.accuracy(self, input_data, target_data)
Пример #4
0
 def accuracy(self, input_data, target_data):
     if isinstance(input_data, np.ndarray):
         input_data = util.counters_from_numpy_array(input_data)
     if isinstance(target_data, np.ndarray):
         target_data = util.list_from_numpy_array_one_hot(target_data)
     return PerceptronClassifier.accuracy(self, input_data, target_data)