docs: def view_predictions(imgs, y_pred, y_true, start, end):
          '''
          displays the images in a grid formation from the 
          start index to the end index, y_true are the true
          labels for the images, y_pred should be your predictions
          imgs should be an (NxWxHx3) array of your input images
  
          '''
          fig, ax = plt.subplots(16, 4, sharex='col', sharey='row', figsize=(25, 100))
          for i, img in enumerate(imgs[start:end]):
              pred_label = y_pred[start:end][i]
              actual_label = y_true[i]
              ax[i//4][i%4].imshow(img)
              ax[i//4][i%4].annotate(pred_label[0],
                            (0,0), (0, -32), xycoords='axes fraction', 
                             textcoords='offset points', va='top', size=20)
              ax[i//4][i%4].annotate(actual_label,
                            (0,0), (200, -32), xycoords='axes fraction', 
                             textcoords='offset points', va='top', size=20)
              ax[i//4][i%4].axis('off')
          return ax