I ran 15 rows with the delinquent in the middle.  It stopped again.  I ran just the delinquent and it hangs.  I ran my validation set through and constantly hangs at 68,040.
I exported the deliquent out to a .csv.  The data is 6 numerical columns all centered and scaled and 8 categorical columns that are made into a categorical embedding layer. Finally, there is one image denoted in the data frame with the path to that image and I verified the images exist.
Here is the custom dataset (the training ran just fine):
class image_Dataset(Dataset):
    '''
    image class data set   
    
    '''
    def __init__(self, data, transform = None):
        '''
        Args:
        ------------------------------------------------------------
            data = dataframe
            image = column in dataframe with absolute path to the image
            label = column in dataframe that is the target classification variable
            numerical_columns =  numerical columns from data
            categorical_columns = categorical columns from data
            policy = ID variable
            
        '''
        self.image_frame = data
        self.transform = transform
        
    def __len__(self):
        return len(self.image_frame)
    
    def __getitem__(self, idx):
        if torch.is_tensor(idx):
            idx = idx.tolist()
         
        label = self.image_frame.loc[idx, 'target']
        
#         if self.image_frame.loc[idx, 'Roof'].isna() == True:
#             pic = np.ones(3, 224,224)
#             img = pic
#             image = torch.tensor(img)
#         else:
        pic = Path(self.image_frame.loc[idx, 'location'])
        img = Image.open(pic)
        image = self.transform(img)
        
        policy = self.image_frame.loc[idx, 'policy']
        
        numerical_data = self.image_frame.loc[idx, numerical_columns]
        
        numerical_data = torch.tensor(numerical_data, dtype = torch.float)
        
        for category in non_loca_cat_columns:
            self.image_frame[category] = self.image_frame[category].astype('category')
            
            self.image_frame[category] = self.image_frame[category].astype('category').cat.codes.values
        
            
        categorical_data = self.image_frame.loc[idx, non_loca_cat_columns]
        categorical_data = torch.tensor(categorical_data, dtype = torch.int64)
            
        return image, label, policy, categorical_data , numerical_data
'''