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)
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)