1

I was trying to split training and validation data by batch size, and finding the validation rmse. The size for training feature data is 11000. The size for validation feature data is 2750. However, when I use the zip function in for loop. It limits the for loop in the smaller range, which is 2750.

Anyone know how could I solve this problem? I have been stuck for two days.

  for epoch in range (0, maximum_iterations, 1):
      for i, j in zip(range(0, training_feature_data.shape[0], batch_size), range(0, validation_feature_data.shape[0], batch_size)):
         training_feature_data_i = training_feature_data[i:i+batch_size]
         training_target_data_i = training_target_data[i:i+batch_size]
         validation_feature_data_j = validation_feature_data[j:j+batch_size]
         validation_target_data_j = validation_target_data[j:j+batch_size]
Szymon Bednorz
  • 425
  • 3
  • 10
  • 25
Tony
  • 11
  • 2

1 Answers1

0

Since the training and validation don't have any relation here (index i doesn't seem to affect the validation, and j doesn't affect training), it makes more sense to generate the mini-batches separately. This is what Thomas Schillaci is saying in his comment. Here's one suggestion on how to reformat your code.

for epoch in range (0, maximum_iterations, 1):
  for i in range(0, training_feature_data.shape[0], batch_size):
     training_feature_data_i = training_feature_data[i:i+batch_size]
     training_target_data_i = training_target_data[i:i+batch_size]
  for j in range(0, validation_feature_data.shape[0], batch_size):
     validation_feature_data_j = validation_feature_data[j:j+batch_size]
     validation_target_data_j = validation_target_data[j:j+batch_size]