class_docstr: `FlyingChairs <https://lmb.informatik.uni-freiburg.de/resources/datasets/FlyingChairs.en.html#flyingchairs>`_ Dataset for optical flow.
  
  You will also need to download the FlyingChairs_train_val.txt file from the dataset page.
  
  The dataset is expected to have the following structure: ::
  
      root
          FlyingChairs
              data
                  00001_flow.flo
                  00001_img1.ppm
                  00001_img2.ppm
                  ...
              FlyingChairs_train_val.txt
  
  
  Args:
      root (string): Root directory of the FlyingChairs Dataset.
      split (string, optional): The dataset split, either "train" (default) or "val"
      transforms (callable, optional): A function/transform that takes in
          ``img1, img2, flow, valid_flow_mask`` and returns a transformed version.
          ``valid_flow_mask`` is expected for consistency with other datasets which
          return a built-in valid mask, such as :class:`~torchvision.datasets.KittiFlow`.
class_docstr_tok: ["`","FlyingChairs","<","https",":","\/\/lmb.informatik.uni-freiburg.de\/resources\/datasets\/FlyingChairs.en.html","#","flyingchairs",">","`","_","Dataset","for","optical","flow",".","You","will","also","need","to","download","the","FlyingChairs_train_val.txt","file","from","the","dataset","page",".","The","dataset","is","expected","to","have","the","following","structure",":",":",":","root","FlyingChairs","data","00001_flow.flo","00001_img1.ppm","00001_img2.ppm","...","FlyingChairs_train_val.txt","Args",":","root","(","string",")",":","Root","directory","of","the","FlyingChairs","Dataset",".","split","(","string",",","optional",")",":","The","dataset","split",",","either","``","train","''","(","default",")","or","``","val","''","transforms","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","``","img1",",","img2",",","flow",",","valid_flow_mask","``","and","returns","a","transformed","version",".","``","valid_flow_mask","``","is","expected","for","consistency","with","other","datasets","which","return","a","built-in","valid","mask",",","such","as",":","class",":","`","~torchvision.datasets.KittiFlow","`","."]
code: def _read_flow(self, file_name: str) -> np.ndarray:
      return _read_flo(file_name)
  
imports: import itertools
  import os
  from abc import ABC, abstractmethod
  from glob import glob
  from pathlib import Path
  from typing import Callable, List, Optional, Tuple, Union
  import numpy
  import torch
  from PIL import Image
  from ..io.image import _read_png_16
  from .utils import _read_pfm, verify_str_arg
  from .vision import VisionDataset
label_desc: Use image node_id 3 for calling the FlyingChairs obj's underlying member method code with example usage: obj._read_flow(file_name) and returns: _read_flo