docstr: image_root (string): Root directory of images 
  ann_root (string): directory to store the annotation file
  split (string): train, val or test
code: def __init__(self, transform, image_root, ann_root, split):
      """
      image_root (string): Root directory of images
      ann_root (string): directory to store the annotation file
      split (string): train, val or test
      """
      urls = {
          "train": "https://storage.googleapis.com/sfr-vision-language-research/datasets/nlvr_train.json",
          "val": "https://storage.googleapis.com/sfr-vision-language-research/datasets/nlvr_dev.json",
          "test": "https://storage.googleapis.com/sfr-vision-language-research/datasets/nlvr_test.json",
      }
      filenames = {
          "train": "nlvr_train.json",
          "val": "nlvr_dev.json",
          "test": "nlvr_test.json",
      }
  
      download_url(urls[split], ann_root)
      self.annotation = json.load(
          open(os.path.join(ann_root, filenames[split]), "r")
      )
  
      self.transform = transform
      self.image_root = image_root
  
file_path: blip/data/nlvr_dataset.py
imports: import os
  import json
  import random
  from torch.utils.data import Dataset
  from torchvision.datasets.utils import download_url
  from PIL import Image
  from data.utils import pre_caption
label_desc: Use image node_id 1 to create a new nlvr_dataset object from inherited base classes: Dataset with example: obj = nlvr_dataset(transform, image_root, ann_root, split)