Пример #1
0
    def reset_val_batches(self):

        self.val_batches = int(
            np.floor(self.val_input_data.shape[0] / self.batch_size))

        if self.val_batches > 0:
            self.val_input_batches = self.val_input_data
            self.val_output_batches = self.val_output_data

            self.val_input_batches = self.val_input_batches[:self.batch_size *
                                                            self.val_batches]
            self.val_output_batches = self.val_output_batches[:self.
                                                              batch_size *
                                                              self.val_batches]

        else:
            self.val_input_batches = np.zeros(
                (self.batch_size, self.val_input_data.shape))
            self.val_output_batches = np.zeros(
                (self.batch_size, self.val_output_data.shape))

            self.val_input_batches = data.reshape_1D_input(
                self.val_input_batches)

            self.val_input_batches[:self.val_input_data.
                                   shape[0]] = self.val_input_data
            self.val_output_batches[:self.val_output_data.
                                    shape[0]] = self.val_output_data

        if self.frame_work == 'Tensorflow':
            self.val_input_batches, self.val_output_batches = data.convert_to_tensorflow_minbatch(
                self.val_input_batches, self.val_output_batches,
                self.batch_size)
Пример #2
0
    def reset_train_batches(self, batch_size=None, num_batches=None):
        ''' This function resets the training batches

        Example:    Training data set = 1000 samples,
                    Batch size = 300

        Framework:  Keras
            - The output is an array of as many training samples that fit within the batch size.
                    Train_input_batches.shape = [900, data_size]

        Framework: Tensorflow
            - The Tensorflow implementation requires each mini-batch to be explicitly set.
                    Train_input_batches.shape = (# batches, ) - In each batch is a numpy array of size (batch_size, data_size)

        :param batch_size:
        :param num_batches:
        :return:
        '''

        # Update batch size if passed
        if batch_size is not None:
            self.batch_size = batch_size

        # Calc number of batches
        if num_batches is not None:
            self.num_train_batches = int(num_batches)
        else:
            self.num_train_batches = int(
                np.floor(self.train_input_data.shape[0] / self.batch_size))

        # Copy all training data
        self.train_input_batches = self.train_input_data
        self.train_output_batches = self.train_output_data

        # Shuffle Training data
        self.train_input_batches, self.train_output_batches = data.shuffle_input_output(
            self.train_input_batches, self.train_output_batches)

        ## Restrict the amount of training Data a number that fits in the number of batches
        self.train_input_batches = self.train_input_batches[:self.batch_size *
                                                            self.
                                                            num_train_batches]
        self.train_output_batches = self.train_output_batches[:self.
                                                              batch_size *
                                                              self.
                                                              num_train_batches]

        if self.frame_work == 'Keras':
            return

        if self.frame_work == 'Tensorflow':
            self.train_input_batches, self.train_output_batches = data.convert_to_tensorflow_minbatch(
                self.train_input_batches, self.train_output_batches,
                self.batch_size)