class_docstr: Generate batches of tensor image data with real-time data augmentation.
   The data will be looped over (in batches).
  
  # Arguments
      featurewise_center: Boolean.
          Set input mean to 0 over the dataset, feature-wise.
      samplewise_center: Boolean. Set each sample mean to 0.
      featurewise_std_normalization: Boolean.
          Divide inputs by std of the dataset, feature-wise.
      samplewise_std_normalization: Boolean. Divide each input by its std.
      zca_whitening: Boolean. Apply ZCA whitening.
      zca_epsilon: epsilon for ZCA whitening. Default is 1e-6.
      rotation_range: Int. Degree range for random rotations.
      width_shift_range: Float, 1-D array-like or int
          - float: fraction of total width, if < 1, or pixels if >= 1.
          - 1-D array-like: random elements from the array.
          - int: integer number of pixels from interval
              `(-width_shift_range, +width_shift_range)`
          - With `width_shift_range=2` possible values
              are integers `[-1, 0, +1]`,
              same as with `width_shift_range=[-1, 0, +1]`,
              while with `width_shift_range=1.0` possible values are floats
              in the interval `[-1.0, +1.0)`.
      height_shift_range: Float, 1-D array-like or int
          - float: fraction of total height, if < 1, or pixels if >= 1.
          - 1-D array-like: random elements from the array.
          - int: integer number of pixels from interval
              `(-height_shift_range, +height_shift_range)`
          - With `height_shift_range=2` possible values
              are integers `[-1, 0, +1]`,
              same as with `height_shift_range=[-1, 0, +1]`,
              while with `height_shift_range=1.0` possible values are floats
              in the interval `[-1.0, +1.0)`.
      brightness_range: Tuple or list of two floats. Range for picking
          a brightness shift value from.
      shear_range: Float. Shear Intensity
          (Shear angle in counter-clockwise direction in degrees)
      zoom_range: Float or [lower, upper]. Range for random zoom.
          If a float, `[lower, upper] = [1-zoom_range, 1+zoom_range]`.
      channel_shift_range: Float. Range for random channel shifts.
      fill_mode: One of {"constant", "nearest", "reflect" or "wrap"}.
          Default is 'nearest'.
          Points outside the boundaries of the input are filled
          according to the given mode:
          - 'constant': kkkkkkkk|abcd|kkkkkkkk (cval=k)
          - 'nearest':  aaaaaaaa|abcd|dddddddd
          - 'reflect':  abcddcba|abcd|dcbaabcd
          - 'wrap':  abcdabcd|abcd|abcdabcd
      cval: Float or Int.
          Value used for points outside the boundaries
          when `fill_mode = "constant"`.
      horizontal_flip: Boolean. Randomly flip inputs horizontally.
      vertical_flip: Boolean. Randomly flip inputs vertically.
      rescale: rescaling factor. Defaults to None.
          If None or 0, no rescaling is applied,
          otherwise we multiply the data by the value provided
          (after applying all other transformations).
      preprocessing_function: function that will be applied on each input.
          The function will run after the image is resized and augmented.
          The function should take one argument:
          one image (NumPy tensor with rank 3),
          and should output a NumPy tensor with the same shape.
      data_format: Image data format,
          either "channels_first" or "channels_last".
          "channels_last" mode means that the images should have shape
          `(samples, height, width, channels)`,
          "channels_first" mode means that the images should have shape
          `(samples, channels, height, width)`.
          It defaults to the `image_data_format` value found in your
          Keras config file at `~/.keras/keras.json`.
          If you never set it, then it will be "channels_last".
      validation_split: Float. Fraction of images reserved for validation
          (strictly between 0 and 1).
      interpolation_order: int, order to use for
          the spline interpolation. Higher is slower.
      dtype: Dtype to use for the generated arrays.
  
  # Examples
  Example of using `.flow(x, y)`:
  
  ```python
  (x_train, y_train), (x_test, y_test) = cifar10.load_data()
  y_train = np_utils.to_categorical(y_train, num_classes)
  y_test = np_utils.to_categorical(y_test, num_classes)
  
  datagen = ImageDataGenerator(
      featurewise_center=True,
      featurewise_std_normalization=True,
      rotation_range=20,
      width_shift_range=0.2,
      height_shift_range=0.2,
      horizontal_flip=True)
  
  # compute quantities required for featurewise normalization
  # (std, mean, and principal components if ZCA whitening is applied)
  datagen.fit(x_train)
  
  # fits the model on batches with real-time data augmentation:
  model.fit_generator(datagen.flow(x_train, y_train, batch_size=32),
                      steps_per_epoch=len(x_train) / 32, epochs=epochs)
  
  # here's a more "manual" example
  for e in range(epochs):
      print('Epoch', e)
      batches = 0
      for x_batch, y_batch in datagen.flow(x_train, y_train, batch_size=32):
          model.fit(x_batch, y_batch)
          batches += 1
          if batches >= len(x_train) / 32:
              # we need to break the loop by hand because
              # the generator loops indefinitely
              break
  ```
  Example of using `.flow_from_directory(directory)`:
  
  ```python
  train_datagen = ImageDataGenerator(
          rescale=1./255,
          shear_range=0.2,
          zoom_range=0.2,
          horizontal_flip=True)
  
  test_datagen = ImageDataGenerator(rescale=1./255)
  
  train_generator = train_datagen.flow_from_directory(
          'data/train',
          target_size=(150, 150),
          batch_size=32,
          class_mode='binary')
  
  validation_generator = test_datagen.flow_from_directory(
          'data/validation',
          target_size=(150, 150),
          batch_size=32,
          class_mode='binary')
  
  model.fit_generator(
          train_generator,
          steps_per_epoch=2000,
          epochs=50,
          validation_data=validation_generator,
          validation_steps=800)
  ```
  
  Example of transforming images and masks together.
  
  ```python
  # we create two instances with the same arguments
  data_gen_args = dict(featurewise_center=True,
                       featurewise_std_normalization=True,
                       rotation_range=90,
                       width_shift_range=0.1,
                       height_shift_range=0.1,
                       zoom_range=0.2)
  image_datagen = ImageDataGenerator(**data_gen_args)
  mask_datagen = ImageDataGenerator(**data_gen_args)
  
  # Provide the same seed and keyword arguments to the fit and flow methods
  seed = 1
  image_datagen.fit(images, augment=True, seed=seed)
  mask_datagen.fit(masks, augment=True, seed=seed)
  
  image_generator = image_datagen.flow_from_directory(
      'data/images',
      class_mode=None,
      seed=seed)
  
  mask_generator = mask_datagen.flow_from_directory(
      'data/masks',
      class_mode=None,
      seed=seed)
  
  # combine generators into one which yields image and masks
  train_generator = zip(image_generator, mask_generator)
  
  model.fit_generator(
      train_generator,
      steps_per_epoch=2000,
      epochs=50)
  ```
  
  Example of using ```.flow_from_dataframe(dataframe, directory,
                                          x_col, y_col)```:
  
  ```python
  
  train_df = pandas.read_csv("./train.csv")
  valid_df = pandas.read_csv("./valid.csv")
  
  train_datagen = ImageDataGenerator(
          rescale=1./255,
          shear_range=0.2,
          zoom_range=0.2,
          horizontal_flip=True)
  
  test_datagen = ImageDataGenerator(rescale=1./255)
  
  train_generator = train_datagen.flow_from_dataframe(
          dataframe=train_df,
          directory='data/train',
          x_col="filename",
          y_col="class",
          target_size=(150, 150),
          batch_size=32,
          class_mode='binary')
  
  validation_generator = test_datagen.flow_from_dataframe(
          dataframe=valid_df,
          directory='data/validation',
          x_col="filename",
          y_col="class",
          target_size=(150, 150),
          batch_size=32,
          class_mode='binary')
  
  model.fit_generator(
          train_generator,
          steps_per_epoch=2000,
          epochs=50,
          validation_data=validation_generator,
          validation_steps=800)
  ```
class_docstr_tok: ["Generate","batches","of","tensor","image","data","with","real-time","data","augmentation",".","The","data","will","be","looped","over","(","in","batches",")",".","#","Arguments","featurewise_center",":","Boolean",".","Set","input","mean","to","0","over","the","dataset",",","feature-wise",".","samplewise_center",":","Boolean",".","Set","each","sample","mean","to","0.","featurewise_std_normalization",":","Boolean",".","Divide","inputs","by","std","of","the","dataset",",","feature-wise",".","samplewise_std_normalization",":","Boolean",".","Divide","each","input","by","its","std",".","zca_whitening",":","Boolean",".","Apply","ZCA","whitening",".","zca_epsilon",":","epsilon","for","ZCA","whitening",".","Default","is","1e-6",".","rotation_range",":","Int",".","Degree","range","for","random","rotations",".","width_shift_range",":","Float",",","1-D","array-like","or","int","-","float",":","fraction","of","total","width",",","if","<","1",",","or","pixels","if",">","=","1",".","-","1-D","array-like",":","random","elements","from","the","array",".","-","int",":","integer","number","of","pixels","from","interval","`","(","-width_shift_range",",","+width_shift_range",")","`","-","With","`","width_shift_range=2","`","possible","values","are","integers","`","[","-1",",","0",",","+1","]","`",",","same","as","with","`","width_shift_range=","[","-1",",","0",",","+1","]","`",",","while","with","`","width_shift_range=1.0","`","possible","values","are","floats","in","the","interval","`","[","-1.0",",","+1.0",")","`",".","height_shift_range",":","Float",",","1-D","array-like","or","int","-","float",":","fraction","of","total","height",",","if","<","1",",","or","pixels","if",">","=","1",".","-","1-D","array-like",":","random","elements","from","the","array",".","-","int",":","integer","number","of","pixels","from","interval","`","(","-height_shift_range",",","+height_shift_range",")","`","-","With","`","height_shift_range=2","`","possible","values","are","integers","`","[","-1",",","0",",","+1","]","`",",","same","as","with","`","height_shift_range=","[","-1",",","0",",","+1","]","`",",","while","with","`","height_shift_range=1.0","`","possible","values","are","floats","in","the","interval","`","[","-1.0",",","+1.0",")","`",".","brightness_range",":","Tuple","or","list","of","two","floats",".","Range","for","picking","a","brightness","shift","value","from",".","shear_range",":","Float",".","Shear","Intensity","(","Shear","angle","in","counter-clockwise","direction","in","degrees",")","zoom_range",":","Float","or","[","lower",",","upper","]",".","Range","for","random","zoom",".","If","a","float",",","`","[","lower",",","upper","]","=","[","1-zoom_range",",","1+zoom_range","]","`",".","channel_shift_range",":","Float",".","Range","for","random","channel","shifts",".","fill_mode",":","One","of","{","``","constant","''",",","``","nearest","''",",","``","reflect","''","or","``","wrap","''","}",".","Default","is","'nearest","'",".","Points","outside","the","boundaries","of","the","input","are","filled","according","to","the","given","mode",":","-","'constant","'",":","kkkkkkkk|abcd|kkkkkkkk","(","cval=k",")","-","'nearest","'",":","aaaaaaaa|abcd|dddddddd","-","'reflect","'",":","abcddcba|abcd|dcbaabcd","-","'wrap","'",":","abcdabcd|abcd|abcdabcd","cval",":","Float","or","Int",".","Value","used","for","points","outside","the","boundaries","when","`","fill_mode","=","``","constant","''","`",".","horizontal_flip",":","Boolean",".","Randomly","flip","inputs","horizontally",".","vertical_flip",":","Boolean",".","Randomly","flip","inputs","vertically",".","rescale",":","rescaling","factor",".","Defaults","to","None",".","If","None","or","0",",","no","rescaling","is","applied",",","otherwise","we","multiply","the","data","by","the","value","provided","(","after","applying","all","other","transformations",")",".","preprocessing_function",":","function","that","will","be","applied","on","each","input",".","The","function","will","run","after","the","image","is","resized","and","augmented",".","The","function","should","take","one","argument",":","one","image","(","NumPy","tensor","with","rank","3",")",",","and","should","output","a","NumPy","tensor","with","the","same","shape",".","data_format",":","Image","data","format",",","either","``","channels_first","''","or","``","channels_last","''",".","``","channels_last","''","mode","means","that","the","images","should","have","shape","`","(","samples",",","height",",","width",",","channels",")","`",",","``","channels_first","''","mode","means","that","the","images","should","have","shape","`","(","samples",",","channels",",","height",",","width",")","`",".","It","defaults","to","the","`","image_data_format","`","value","found","in","your","Keras","config","file","at","`","~\/.keras\/keras.json","`",".","If","you","never","set","it",",","then","it","will","be","``","channels_last","''",".","validation_split",":","Float",".","Fraction","of","images","reserved","for","validation","(","strictly","between","0","and","1",")",".","interpolation_order",":","int",",","order","to","use","for","the","spline","interpolation",".","Higher","is","slower",".","dtype",":","Dtype","to","use","for","the","generated","arrays",".","#","Examples","Example","of","using","`",".flow","(","x",",","y",")","`",":","``","`","python","(","x_train",",","y_train",")",",","(","x_test",",","y_test",")","=","cifar10.load_data","(",")","y_train","=","np_utils.to_categorical","(","y_train",",","num_classes",")","y_test","=","np_utils.to_categorical","(","y_test",",","num_classes",")","datagen","=","ImageDataGenerator","(","featurewise_center=True",",","featurewise_std_normalization=True",",","rotation_range=20",",","width_shift_range=0.2",",","height_shift_range=0.2",",","horizontal_flip=True",")","#","compute","quantities","required","for","featurewise","normalization","#","(","std",",","mean",",","and","principal","components","if","ZCA","whitening","is","applied",")","datagen.fit","(","x_train",")","#","fits","the","model","on","batches","with","real-time","data","augmentation",":","model.fit_generator","(","datagen.flow","(","x_train",",","y_train",",","batch_size=32",")",",","steps_per_epoch=len","(","x_train",")","\/","32",",","epochs=epochs",")","#","here","'s","a","more","``","manual","''","example","for","e","in","range","(","epochs",")",":","print","(","'Epoch","'",",","e",")","batches","=","0","for","x_batch",",","y_batch","in","datagen.flow","(","x_train",",","y_train",",","batch_size=32",")",":","model.fit","(","x_batch",",","y_batch",")","batches","+=","1","if","batches",">","=","len","(","x_train",")","\/","32",":","#","we","need","to","break","the","loop","by","hand","because","#","the","generator","loops","indefinitely","break","``","`","Example","of","using","`",".flow_from_directory","(","directory",")","`",":","``","`","python","train_datagen","=","ImageDataGenerator","(","rescale=1.\/255",",","shear_range=0.2",",","zoom_range=0.2",",","horizontal_flip=True",")","test_datagen","=","ImageDataGenerator","(","rescale=1.\/255",")","train_generator","=","train_datagen.flow_from_directory","(","'data\/train","'",",","target_size=","(","150",",","150",")",",","batch_size=32",",","class_mode='binary","'",")","validation_generator","=","test_datagen.flow_from_directory","(","'data\/validation","'",",","target_size=","(","150",",","150",")",",","batch_size=32",",","class_mode='binary","'",")","model.fit_generator","(","train_generator",",","steps_per_epoch=2000",",","epochs=50",",","validation_data=validation_generator",",","validation_steps=800",")","``","`","Example","of","transforming","images","and","masks","together",".","``","`","python","#","we","create","two","instances","with","the","same","arguments","data_gen_args","=","dict","(","featurewise_center=True",",","featurewise_std_normalization=True",",","rotation_range=90",",","width_shift_range=0.1",",","height_shift_range=0.1",",","zoom_range=0.2",")","image_datagen","=","ImageDataGenerator","(","*","*","data_gen_args",")","mask_datagen","=","ImageDataGenerator","(","*","*","data_gen_args",")","#","Provide","the","same","seed","and","keyword","arguments","to","the","fit","and","flow","methods","seed","=","1","image_datagen.fit","(","images",",","augment=True",",","seed=seed",")","mask_datagen.fit","(","masks",",","augment=True",",","seed=seed",")","image_generator","=","image_datagen.flow_from_directory","(","'data\/images","'",",","class_mode=None",",","seed=seed",")","mask_generator","=","mask_datagen.flow_from_directory","(","'data\/masks","'",",","class_mode=None",",","seed=seed",")","#","combine","generators","into","one","which","yields","image","and","masks","train_generator","=","zip","(","image_generator",",","mask_generator",")","model.fit_generator","(","train_generator",",","steps_per_epoch=2000",",","epochs=50",")","``","`","Example","of","using","``","`",".flow_from_dataframe","(","dataframe",",","directory",",","x_col",",","y_col",")","``","`",":","``","`","python","train_df","=","pandas.read_csv","(","``",".\/train.csv","''",")","valid_df","=","pandas.read_csv","(","``",".\/valid.csv","''",")","train_datagen","=","ImageDataGenerator","(","rescale=1.\/255",",","shear_range=0.2",",","zoom_range=0.2",",","horizontal_flip=True",")","test_datagen","=","ImageDataGenerator","(","rescale=1.\/255",")","train_generator","=","train_datagen.flow_from_dataframe","(","dataframe=train_df",",","directory='data\/train","'",",","x_col=","''","filename","''",",","y_col=","''","class","''",",","target_size=","(","150",",","150",")",",","batch_size=32",",","class_mode='binary","'",")","validation_generator","=","test_datagen.flow_from_dataframe","(","dataframe=valid_df",",","directory='data\/validation","'",",","x_col=","''","filename","''",",","y_col=","''","class","''",",","target_size=","(","150",",","150",")",",","batch_size=32",",","class_mode='binary","'",")","model.fit_generator","(","train_generator",",","steps_per_epoch=2000",",","epochs=50",",","validation_data=validation_generator",",","validation_steps=800",")","``","`"]
docstr: Takes the dataframe and the path to a directory
   and generates batches of augmented/normalized data.
  
  **A simple tutorial can be found **[here](
                              http://bit.ly/keras_flow_from_dataframe).
  
  # Arguments
      dataframe: Pandas dataframe containing the filepaths relative to
          `directory` (or absolute paths if `directory` is None) of the
          images in a string column. It should include other column/s
          depending on the `class_mode`:
          - if `class_mode` is `"categorical"` (default value) it must
              include the `y_col` column with the class/es of each image.
              Values in column can be string/list/tuple if a single class
              or list/tuple if multiple classes.
          - if `class_mode` is `"binary"` or `"sparse"` it must include
              the given `y_col` column with class values as strings.
          - if `class_mode` is `"raw"` or `"multi_output"` it should contain
          the columns specified in `y_col`.
          - if `class_mode` is `"input"` or `None` no extra column is needed.
      directory: string, path to the directory to read images from. If `None`,
          data in `x_col` column should be absolute paths.
      x_col: string, column in `dataframe` that contains the filenames (or
          absolute paths if `directory` is `None`).
      y_col: string or list, column/s in `dataframe` that has the target data.
      weight_col: string, column in `dataframe` that contains the sample
          weights. Default: `None`.
      target_size: tuple of integers `(height, width)`, default: `(256, 256)`.
          The dimensions to which all images found will be resized.
      color_mode: one of "grayscale", "rgb", "rgba". Default: "rgb".
          Whether the images will be converted to have 1 or 3 color channels.
      classes: optional list of classes (e.g. `['dogs', 'cats']`).
          Default: None. If not provided, the list of classes will be
          automatically inferred from the `y_col`,
          which will map to the label indices, will be alphanumeric).
          The dictionary containing the mapping from class names to class
          indices can be obtained via the attribute `class_indices`.
      class_mode: one of "binary", "categorical", "input", "multi_output",
          "raw", sparse" or None. Default: "categorical".
          Mode for yielding the targets:
          - `"binary"`: 1D NumPy array of binary labels,
          - `"categorical"`: 2D NumPy array of one-hot encoded labels.
              Supports multi-label output.
          - `"input"`: images identical to input images (mainly used to
              work with autoencoders),
          - `"multi_output"`: list with the values of the different columns,
          - `"raw"`: NumPy array of values in `y_col` column(s),
          - `"sparse"`: 1D NumPy array of integer labels,
          - `None`, no targets are returned (the generator will only yield
              batches of image data, which is useful to use in
              `model.predict_generator()`).
      batch_size: size of the batches of data (default: 32).
      shuffle: whether to shuffle the data (default: True)
      seed: optional random seed for shuffling and transformations.
      save_to_dir: None or str (default: None).
          This allows you to optionally specify a directory
          to which to save the augmented pictures being generated
          (useful for visualizing what you are doing).
      save_prefix: str. Prefix to use for filenames of saved pictures
          (only relevant if `save_to_dir` is set).
      save_format: one of "png", "jpeg"
          (only relevant if `save_to_dir` is set). Default: "png".
      follow_links: whether to follow symlinks inside class subdirectories
          (default: False).
      subset: Subset of data (`"training"` or `"validation"`) if
          `validation_split` is set in `ImageDataGenerator`.
      interpolation: Interpolation method used to resample the image if the
          target size is different from that of the loaded image.
          Supported methods are `"nearest"`, `"bilinear"`, and `"bicubic"`.
          If PIL version 1.1.3 or newer is installed, `"lanczos"` is also
          supported. If PIL version 3.4.0 or newer is installed, `"box"` and
          `"hamming"` are also supported. By default, `"nearest"` is used.
      validate_filenames: Boolean, whether to validate image filenames in
          `x_col`. If `True`, invalid images will be ignored. Disabling this
          option can lead to speed-up in the execution of this function.
          Default: `True`.
  
  # Returns
      A `DataFrameIterator` yielding tuples of `(x, y)`
      where `x` is a NumPy array containing a batch
      of images with shape `(batch_size, *target_size, channels)`
      and `y` is a NumPy array of corresponding labels.
docstr_tok: ["Takes","the","dataframe","and","the","path","to","a","directory","and","generates","batches","of","augmented\/normalized","data",".","*","*","A","simple","tutorial","can","be","found","*","*","[","here","]","(","http",":","\/\/bit.ly\/keras_flow_from_dataframe",")",".","#","Arguments","dataframe",":","Pandas","dataframe","containing","the","filepaths","relative","to","`","directory","`","(","or","absolute","paths","if","`","directory","`","is","None",")","of","the","images","in","a","string","column",".","It","should","include","other","column\/s","depending","on","the","`","class_mode","`",":","-","if","`","class_mode","`","is","`","``","categorical","''","`","(","default","value",")","it","must","include","the","`","y_col","`","column","with","the","class\/es","of","each","image",".","Values","in","column","can","be","string\/list\/tuple","if","a","single","class","or","list\/tuple","if","multiple","classes",".","-","if","`","class_mode","`","is","`","``","binary","''","`","or","`","``","sparse","''","`","it","must","include","the","given","`","y_col","`","column","with","class","values","as","strings",".","-","if","`","class_mode","`","is","`","``","raw","''","`","or","`","``","multi_output","''","`","it","should","contain","the","columns","specified","in","`","y_col","`",".","-","if","`","class_mode","`","is","`","``","input","''","`","or","`","None","`","no","extra","column","is","needed",".","directory",":","string",",","path","to","the","directory","to","read","images","from",".","If","`","None","`",",","data","in","`","x_col","`","column","should","be","absolute","paths",".","x_col",":","string",",","column","in","`","dataframe","`","that","contains","the","filenames","(","or","absolute","paths","if","`","directory","`","is","`","None","`",")",".","y_col",":","string","or","list",",","column\/s","in","`","dataframe","`","that","has","the","target","data",".","weight_col",":","string",",","column","in","`","dataframe","`","that","contains","the","sample","weights",".","Default",":","`","None","`",".","target_size",":","tuple","of","integers","`","(","height",",","width",")","`",",","default",":","`","(","256",",","256",")","`",".","The","dimensions","to","which","all","images","found","will","be","resized",".","color_mode",":","one","of","``","grayscale","''",",","``","rgb","''",",","``","rgba","''",".","Default",":","``","rgb","''",".","Whether","the","images","will","be","converted","to","have","1","or","3","color","channels",".","classes",":","optional","list","of","classes","(","e.g",".","`","[","'dogs","'",",","'cats","'","]","`",")",".","Default",":","None",".","If","not","provided",",","the","list","of","classes","will","be","automatically","inferred","from","the","`","y_col","`",",","which","will","map","to","the","label","indices",",","will","be","alphanumeric",")",".","The","dictionary","containing","the","mapping","from","class","names","to","class","indices","can","be","obtained","via","the","attribute","`","class_indices","`",".","class_mode",":","one","of","``","binary","''",",","``","categorical","''",",","``","input","''",",","``","multi_output","''",",","``","raw","''",",","sparse","''","or","None",".","Default",":","``","categorical","''",".","Mode","for","yielding","the","targets",":","-","`","``","binary","''","`",":","1D","NumPy","array","of","binary","labels",",","-","`","``","categorical","''","`",":","2D","NumPy","array","of","one-hot","encoded","labels",".","Supports","multi-label","output",".","-","`","``","input","''","`",":","images","identical","to","input","images","(","mainly","used","to","work","with","autoencoders",")",",","-","`","``","multi_output","''","`",":","list","with","the","values","of","the","different","columns",",","-","`","``","raw","''","`",":","NumPy","array","of","values","in","`","y_col","`","column","(","s",")",",","-","`","``","sparse","''","`",":","1D","NumPy","array","of","integer","labels",",","-","`","None","`",",","no","targets","are","returned","(","the","generator","will","only","yield","batches","of","image","data",",","which","is","useful","to","use","in","`","model.predict_generator","(",")","`",")",".","batch_size",":","size","of","the","batches","of","data","(","default",":","32",")",".","shuffle",":","whether","to","shuffle","the","data","(","default",":","True",")","seed",":","optional","random","seed","for","shuffling","and","transformations",".","save_to_dir",":","None","or","str","(","default",":","None",")",".","This","allows","you","to","optionally","specify","a","directory","to","which","to","save","the","augmented","pictures","being","generated","(","useful","for","visualizing","what","you","are","doing",")",".","save_prefix",":","str",".","Prefix","to","use","for","filenames","of","saved","pictures","(","only","relevant","if","`","save_to_dir","`","is","set",")",".","save_format",":","one","of","``","png","''",",","``","jpeg","''","(","only","relevant","if","`","save_to_dir","`","is","set",")",".","Default",":","``","png","''",".","follow_links",":","whether","to","follow","symlinks","inside","class","subdirectories","(","default",":","False",")",".","subset",":","Subset","of","data","(","`","``","training","''","`","or","`","``","validation","''","`",")","if","`","validation_split","`","is","set","in","`","ImageDataGenerator","`",".","interpolation",":","Interpolation","method","used","to","resample","the","image","if","the","target","size","is","different","from","that","of","the","loaded","image",".","Supported","methods","are","`","``","nearest","''","`",",","`","``","bilinear","''","`",",","and","`","``","bicubic","''","`",".","If","PIL","version","1.1.3","or","newer","is","installed",",","`","``","lanczos","''","`","is","also","supported",".","If","PIL","version","3.4.0","or","newer","is","installed",",","`","``","box","''","`","and","`","``","hamming","''","`","are","also","supported",".","By","default",",","`","``","nearest","''","`","is","used",".","validate_filenames",":","Boolean",",","whether","to","validate","image","filenames","in","`","x_col","`",".","If","`","True","`",",","invalid","images","will","be","ignored",".","Disabling","this","option","can","lead","to","speed-up","in","the","execution","of","this","function",".","Default",":","`","True","`",".","#","Returns","A","`","DataFrameIterator","`","yielding","tuples","of","`","(","x",",","y",")","`","where","`","x","`","is","a","NumPy","array","containing","a","batch","of","images","with","shape","`","(","batch_size",",","*","target_size",",","channels",")","`","and","`","y","`","is","a","NumPy","array","of","corresponding","labels","."]
code: def flow_from_dataframe(
      self,
      dataframe,
      directory=None,
      x_col="filename",
      y_col="class",
      weight_col=None,
      target_size=(256, 256),
      color_mode="rgb",
      classes=None,
      class_mode="categorical",
      batch_size=32,
      shuffle=True,
      seed=None,
      save_to_dir=None,
      save_prefix="",
      save_format="png",
      subset=None,
      interpolation="nearest",
      validate_filenames=True,
      **kwargs,
  ):
      """Takes the dataframe and the path to a directory
       and generates batches of augmented/normalized data.
  
      **A simple tutorial can be found **[here](
                                  http://bit.ly/keras_flow_from_dataframe).
  
      # Arguments
          dataframe: Pandas dataframe containing the filepaths relative to
              `directory` (or absolute paths if `directory` is None) of the
              images in a string column. It should include other column/s
              depending on the `class_mode`:
              - if `class_mode` is `"categorical"` (default value) it must
                  include the `y_col` column with the class/es of each image.
                  Values in column can be string/list/tuple if a single class
                  or list/tuple if multiple classes.
              - if `class_mode` is `"binary"` or `"sparse"` it must include
                  the given `y_col` column with class values as strings.
              - if `class_mode` is `"raw"` or `"multi_output"` it should contain
              the columns specified in `y_col`.
              - if `class_mode` is `"input"` or `None` no extra column is needed.
          directory: string, path to the directory to read images from. If `None`,
              data in `x_col` column should be absolute paths.
          x_col: string, column in `dataframe` that contains the filenames (or
              absolute paths if `directory` is `None`).
          y_col: string or list, column/s in `dataframe` that has the target data.
          weight_col: string, column in `dataframe` that contains the sample
              weights. Default: `None`.
          target_size: tuple of integers `(height, width)`, default: `(256, 256)`.
              The dimensions to which all images found will be resized.
          color_mode: one of "grayscale", "rgb", "rgba". Default: "rgb".
              Whether the images will be converted to have 1 or 3 color channels.
          classes: optional list of classes (e.g. `['dogs', 'cats']`).
              Default: None. If not provided, the list of classes will be
              automatically inferred from the `y_col`,
              which will map to the label indices, will be alphanumeric).
              The dictionary containing the mapping from class names to class
              indices can be obtained via the attribute `class_indices`.
          class_mode: one of "binary", "categorical", "input", "multi_output",
              "raw", sparse" or None. Default: "categorical".
              Mode for yielding the targets:
              - `"binary"`: 1D NumPy array of binary labels,
              - `"categorical"`: 2D NumPy array of one-hot encoded labels.
                  Supports multi-label output.
              - `"input"`: images identical to input images (mainly used to
                  work with autoencoders),
              - `"multi_output"`: list with the values of the different columns,
              - `"raw"`: NumPy array of values in `y_col` column(s),
              - `"sparse"`: 1D NumPy array of integer labels,
              - `None`, no targets are returned (the generator will only yield
                  batches of image data, which is useful to use in
                  `model.predict_generator()`).
          batch_size: size of the batches of data (default: 32).
          shuffle: whether to shuffle the data (default: True)
          seed: optional random seed for shuffling and transformations.
          save_to_dir: None or str (default: None).
              This allows you to optionally specify a directory
              to which to save the augmented pictures being generated
              (useful for visualizing what you are doing).
          save_prefix: str. Prefix to use for filenames of saved pictures
              (only relevant if `save_to_dir` is set).
          save_format: one of "png", "jpeg"
              (only relevant if `save_to_dir` is set). Default: "png".
          follow_links: whether to follow symlinks inside class subdirectories
              (default: False).
          subset: Subset of data (`"training"` or `"validation"`) if
              `validation_split` is set in `ImageDataGenerator`.
          interpolation: Interpolation method used to resample the image if the
              target size is different from that of the loaded image.
              Supported methods are `"nearest"`, `"bilinear"`, and `"bicubic"`.
              If PIL version 1.1.3 or newer is installed, `"lanczos"` is also
              supported. If PIL version 3.4.0 or newer is installed, `"box"` and
              `"hamming"` are also supported. By default, `"nearest"` is used.
          validate_filenames: Boolean, whether to validate image filenames in
              `x_col`. If `True`, invalid images will be ignored. Disabling this
              option can lead to speed-up in the execution of this function.
              Default: `True`.
  
      # Returns
          A `DataFrameIterator` yielding tuples of `(x, y)`
          where `x` is a NumPy array containing a batch
          of images with shape `(batch_size, *target_size, channels)`
          and `y` is a NumPy array of corresponding labels.
      """
      if "has_ext" in kwargs:
          warnings.warn(
              "has_ext is deprecated, filenames in the dataframe have "
              "to match the exact filenames in disk.",
              DeprecationWarning,
          )
      if "sort" in kwargs:
          warnings.warn(
              "sort is deprecated, batches will be created in the"
              "same order than the filenames provided if shuffle"
              "is set to False.",
              DeprecationWarning,
          )
      if class_mode == "other":
          warnings.warn(
              '`class_mode` "other" is deprecated, please use '
              '`class_mode` "raw".',
              DeprecationWarning,
          )
          class_mode = "raw"
      if "drop_duplicates" in kwargs:
          warnings.warn(
              "drop_duplicates is deprecated, you can drop duplicates "
              "by using the pandas.DataFrame.drop_duplicates method.",
              DeprecationWarning,
          )
  
      return DataFrameIterator(
          dataframe,
          directory,
          self,
          x_col=x_col,
          y_col=y_col,
          weight_col=weight_col,
          target_size=target_size,
          color_mode=color_mode,
          classes=classes,
          class_mode=class_mode,
          data_format=self.data_format,
          batch_size=batch_size,
          shuffle=shuffle,
          seed=seed,
          save_to_dir=save_to_dir,
          save_prefix=save_prefix,
          save_format=save_format,
          subset=subset,
          interpolation=interpolation,
          validate_filenames=validate_filenames,
          dtype=self.dtype,
      )
  
file_path: keras-preprocessing/keras_preprocessing/image/image_data_generator.py
imports: import warnings
  import numpy
  from .affine_transformations import apply_affine_transform, apply_brightness_shift, apply_channel_shift, flip_axis
  from .dataframe_iterator import DataFrameIterator
  from .directory_iterator import DirectoryIterator
  from .numpy_array_iterator import NumpyArrayIterator
label_desc: Use image node_id 4 for calling the ImageDataGenerator obj's underlying member method code with example usage: obj.flow_from_dataframe(dataframe, directory, x_col, y_col, weight_col, target_size, color_mode, classes, class_mode, batch_size, shuffle, seed, save_to_dir, save_prefix, save_format, subset, interpolation, validate_filenames) and returns: DataFrameIterator