Slow training on Microsoft Planetary Hub with keras

I am using keras.utils.Sequence for data reading and feeding to keras model. But it is taking 1 hr per epoch. Can anyone pls help me to solve this? I have checked that tensorflow is seeing the GPU but there is no way to confirm if it is using the same during training or not. Currently my network is very simple and should not take this much time. Here is my code to process data:

class image_process(keras.utils.Sequence):
def init(self, x,y,batch_size):
self.x = x
self.y = y
self.batch_size = batch_size

def __len__(self):
    return math.ceil(len(self.x)/self.batch_size)

def __getitem__(self,idx):
    batch_x = self.x[idx*self.batch_size:(idx+1)*self.batch_size]
    batch_y = self.y[idx*self.batch_size:(idx+1)*self.batch_size]
    ch_main_x = np.array([])
    ch_main_y = np.array([])

    for i in batch_x.index:
        #print(i)        
        ch_B02 = rasterio.open(batch_x.loc[i,"B02_path"]).read().reshape(512,512,1)
        ch_B03 = rasterio.open(batch_x.loc[i,"B03_path"]).read().reshape(512,512,1)
        ch_B04 = rasterio.open(batch_x.loc[i,"B04_path"]).read().reshape(512,512,1)
        ch_B08 = rasterio.open(batch_x.loc[i,"B08_path"]).read().reshape(512,512,1)
        ch_Label = rasterio.open(batch_y.loc[i,"label_path"]).read().reshape(512,512,1)
        
        ch_x = np.concatenate((ch_B02,ch_B03,ch_B04,ch_B08), axis = -1).reshape(1,512,512,4)
        
        ch_main_x = np.append(ch_main_x,ch_x).reshape(-1,512,512,4)
        ch_main_y = np.append(ch_main_y,ch_Label).reshape(-1,512,512,1)
 
    return ch_main_x, ch_main_y