class_docstr: The ``AudioClassificationData`` class is a :class:`~flash.core.data.data_module.DataModule` with a set of class
  methods for loading data for audio classification.
docstr: Load the :class:`~flash.audio.classification.data.AudioClassificationData` from lists of files and
  corresponding lists of targets.
  
  The supported file extensions for precomputed spectrograms are: ``.jpg``, ``.jpeg``, ``.png``, ``.ppm``,
  ``.bmp``, ``.pgm``, ``.tif``, ``.tiff``, ``.webp``, and ``.npy``.
  The supported file extensions for raw audio (where spectrograms will be computed automatically) are: ``.aiff``,
  ``.au``, ``.avr``, ``.caf``, ``.flac``, ``.mat``, ``.mat4``, ``.mat5``, ``.mpc2k``, ``.ogg``, ``.paf``,
  ``.pvf``, ``.rf64``, ``.ircam``, ``.voc``, ``.w64``, ``.wav``, ``.nist``, and ``.wavex``.
  The targets can be in any of our
  :ref:`supported classification target formats <formatting_classification_targets>`.
  To learn how to customize the transforms applied for each stage, read our
  :ref:`customizing transforms guide <customizing_transforms>`.
  
  Args:
      train_files: The list of spectrogram image files to use when training.
      train_targets: The list of targets to use when training.
      val_files: The list of spectrogram image files to use when validating.
      val_targets: The list of targets to use when validating.
      test_files: The list of spectrogram image files to use when testing.
      test_targets: The list of targets to use when testing.
      predict_files: The list of spectrogram image files to use when predicting.
      sampling_rate: Sampling rate to use when loading raw audio files.
      n_fft: The size of the FFT to use when creating spectrograms from raw audio.
      target_formatter: Optionally provide a :class:`~flash.core.data.utilities.classification.TargetFormatter` to
          control how targets are handled. See :ref:`formatting_classification_targets` for more details.
      input_cls: The :class:`~flash.core.data.io.input.Input` type to use for loading the data.
      transform: The :class:`~flash.core.data.io.input_transform.InputTransform` type to use.
      transform_kwargs: Dict of keyword arguments to be provided when instantiating the transforms.
      data_module_kwargs: Additional keyword arguments to provide to the
          :class:`~flash.core.data.data_module.DataModule` constructor.
  
  Returns:
      The constructed :class:`~flash.audio.classification.data.AudioClassificationData`.
  
  Examples
  ________
  
  .. testsetup::
  
      >>> from PIL import Image
      >>> rand_image = Image.fromarray(np.random.randint(0, 255, (64, 64, 3), dtype="uint8"))
      >>> _ = [rand_image.save(f"spectrogram_{i}.png") for i in range(1, 4)]
      >>> _ = [rand_image.save(f"predict_spectrogram_{i}.png") for i in range(1, 4)]
  
  .. doctest::
  
      >>> from flash import Trainer
      >>> from flash.audio import AudioClassificationData
      >>> from flash.image import ImageClassifier
      >>> datamodule = AudioClassificationData.from_files(
      ...     train_files=["spectrogram_1.png", "spectrogram_2.png", "spectrogram_3.png"],
      ...     train_targets=["meow", "bark", "meow"],
      ...     predict_files=[
      ...         "predict_spectrogram_1.png",
      ...         "predict_spectrogram_2.png",
      ...         "predict_spectrogram_3.png",
      ...     ],
      ...     transform_kwargs=dict(spectrogram_size=(128, 128)),
      ...     batch_size=2,
      ... )
      >>> datamodule.num_classes
      2
      >>> datamodule.labels
      ['bark', 'meow']
      >>> model = ImageClassifier(backbone="resnet18", num_classes=datamodule.num_classes)
      >>> trainer = Trainer(fast_dev_run=True)
      >>> trainer.fit(model, datamodule=datamodule)  # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
      Training...
      >>> trainer.predict(model, datamodule=datamodule)  # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
      Predicting...
  
  .. testcleanup::
  
      >>> import os
      >>> _ = [os.remove(f"spectrogram_{i}.png") for i in range(1, 4)]
      >>> _ = [os.remove(f"predict_spectrogram_{i}.png") for i in range(1, 4)]
docstr_tok: ["Load","the",":","class",":","`","~flash.audio.classification.data.AudioClassificationData","`","from","lists","of","files","and","corresponding","lists","of","targets",".","The","supported","file","extensions","for","precomputed","spectrograms","are",":","``",".jpg","``",",","``",".jpeg","``",",","``",".png","``",",","``",".ppm","``",",","``",".bmp","``",",","``",".pgm","``",",","``",".tif","``",",","``",".tiff","``",",","``",".webp","``",",","and","``",".npy","``",".","The","supported","file","extensions","for","raw","audio","(","where","spectrograms","will","be","computed","automatically",")","are",":","``",".aiff","``",",","``",".au","``",",","``",".avr","``",",","``",".caf","``",",","``",".flac","``",",","``",".mat","``",",","``",".mat4","``",",","``",".mat5","``",",","``",".mpc2k","``",",","``",".ogg","``",",","``",".paf","``",",","``",".pvf","``",",","``",".rf64","``",",","``",".ircam","``",",","``",".voc","``",",","``",".w64","``",",","``",".wav","``",",","``",".nist","``",",","and","``",".wavex","``",".","The","targets","can","be","in","any","of","our",":","ref",":","`","supported","classification","target","formats","<","formatting_classification_targets",">","`",".","To","learn","how","to","customize","the","transforms","applied","for","each","stage",",","read","our",":","ref",":","`","customizing","transforms","guide","<","customizing_transforms",">","`",".","Args",":","train_files",":","The","list","of","spectrogram","image","files","to","use","when","training",".","train_targets",":","The","list","of","targets","to","use","when","training",".","val_files",":","The","list","of","spectrogram","image","files","to","use","when","validating",".","val_targets",":","The","list","of","targets","to","use","when","validating",".","test_files",":","The","list","of","spectrogram","image","files","to","use","when","testing",".","test_targets",":","The","list","of","targets","to","use","when","testing",".","predict_files",":","The","list","of","spectrogram","image","files","to","use","when","predicting",".","sampling_rate",":","Sampling","rate","to","use","when","loading","raw","audio","files",".","n_fft",":","The","size","of","the","FFT","to","use","when","creating","spectrograms","from","raw","audio",".","target_formatter",":","Optionally","provide","a",":","class",":","`","~flash.core.data.utilities.classification.TargetFormatter","`","to","control","how","targets","are","handled",".","See",":","ref",":","`","formatting_classification_targets","`","for","more","details",".","input_cls",":","The",":","class",":","`","~flash.core.data.io.input.Input","`","type","to","use","for","loading","the","data",".","transform",":","The",":","class",":","`","~flash.core.data.io.input_transform.InputTransform","`","type","to","use",".","transform_kwargs",":","Dict","of","keyword","arguments","to","be","provided","when","instantiating","the","transforms",".","data_module_kwargs",":","Additional","keyword","arguments","to","provide","to","the",":","class",":","`","~flash.core.data.data_module.DataModule","`","constructor",".","Returns",":","The","constructed",":","class",":","`","~flash.audio.classification.data.AudioClassificationData","`",".","Examples","________","..","testsetup",":",":",">",">",">","from","PIL","import","Image",">",">",">","rand_image","=","Image.fromarray","(","np.random.randint","(","0",",","255",",","(","64",",","64",",","3",")",",","dtype=","''","uint8","''",")",")",">",">",">","_","=","[","rand_image.save","(","f","''","spectrogram_","{","i","}",".png","''",")","for","i","in","range","(","1",",","4",")","]",">",">",">","_","=","[","rand_image.save","(","f","''","predict_spectrogram_","{","i","}",".png","''",")","for","i","in","range","(","1",",","4",")","]","..","doctest",":",":",">",">",">","from","flash","import","Trainer",">",">",">","from","flash.audio","import","AudioClassificationData",">",">",">","from","flash.image","import","ImageClassifier",">",">",">","datamodule","=","AudioClassificationData.from_files","(","...","train_files=","[","``","spectrogram_1.png","''",",","``","spectrogram_2.png","''",",","``","spectrogram_3.png","''","]",",","...","train_targets=","[","``","meow","''",",","``","bark","''",",","``","meow","''","]",",","...","predict_files=","[","...","``","predict_spectrogram_1.png","''",",","...","``","predict_spectrogram_2.png","''",",","...","``","predict_spectrogram_3.png","''",",","...","]",",","...","transform_kwargs=dict","(","spectrogram_size=","(","128",",","128",")",")",",","...","batch_size=2",",","...",")",">",">",">","datamodule.num_classes","2",">",">",">","datamodule.labels","[","'bark","'",",","'meow","'","]",">",">",">","model","=","ImageClassifier","(","backbone=","''","resnet18","''",",","num_classes=datamodule.num_classes",")",">",">",">","trainer","=","Trainer","(","fast_dev_run=True",")",">",">",">","trainer.fit","(","model",",","datamodule=datamodule",")","#","doctest",":","+ELLIPSIS","+NORMALIZE_WHITESPACE","Training","...",">",">",">","trainer.predict","(","model",",","datamodule=datamodule",")","#","doctest",":","+ELLIPSIS","+NORMALIZE_WHITESPACE","Predicting","...","..","testcleanup",":",":",">",">",">","import","os",">",">",">","_","=","[","os.remove","(","f","''","spectrogram_","{","i","}",".png","''",")","for","i","in","range","(","1",",","4",")","]",">",">",">","_","=","[","os.remove","(","f","''","predict_spectrogram_","{","i","}",".png","''",")","for","i","in","range","(","1",",","4",")","]"]
code: def from_files(
      cls,
      train_files: Optional[Sequence[str]] = None,
      train_targets: Optional[Sequence[Any]] = None,
      val_files: Optional[Sequence[str]] = None,
      val_targets: Optional[Sequence[Any]] = None,
      test_files: Optional[Sequence[str]] = None,
      test_targets: Optional[Sequence[Any]] = None,
      predict_files: Optional[Sequence[str]] = None,
      sampling_rate: int = 16000,
      n_fft: int = 400,
      input_cls: Type[Input] = AudioClassificationFilesInput,
      transform: INPUT_TRANSFORM_TYPE = AudioClassificationInputTransform,
      transform_kwargs: Optional[Dict] = None,
      target_formatter: Optional[TargetFormatter] = None,
      **data_module_kwargs: Any,
  ) -> "AudioClassificationData":
      """Load the :class:`~flash.audio.classification.data.AudioClassificationData` from lists of files and
      corresponding lists of targets.
  
      The supported file extensions for precomputed spectrograms are: ``.jpg``, ``.jpeg``, ``.png``, ``.ppm``,
      ``.bmp``, ``.pgm``, ``.tif``, ``.tiff``, ``.webp``, and ``.npy``.
      The supported file extensions for raw audio (where spectrograms will be computed automatically) are: ``.aiff``,
      ``.au``, ``.avr``, ``.caf``, ``.flac``, ``.mat``, ``.mat4``, ``.mat5``, ``.mpc2k``, ``.ogg``, ``.paf``,
      ``.pvf``, ``.rf64``, ``.ircam``, ``.voc``, ``.w64``, ``.wav``, ``.nist``, and ``.wavex``.
      The targets can be in any of our
      :ref:`supported classification target formats <formatting_classification_targets>`.
      To learn how to customize the transforms applied for each stage, read our
      :ref:`customizing transforms guide <customizing_transforms>`.
  
      Args:
          train_files: The list of spectrogram image files to use when training.
          train_targets: The list of targets to use when training.
          val_files: The list of spectrogram image files to use when validating.
          val_targets: The list of targets to use when validating.
          test_files: The list of spectrogram image files to use when testing.
          test_targets: The list of targets to use when testing.
          predict_files: The list of spectrogram image files to use when predicting.
          sampling_rate: Sampling rate to use when loading raw audio files.
          n_fft: The size of the FFT to use when creating spectrograms from raw audio.
          target_formatter: Optionally provide a :class:`~flash.core.data.utilities.classification.TargetFormatter` to
              control how targets are handled. See :ref:`formatting_classification_targets` for more details.
          input_cls: The :class:`~flash.core.data.io.input.Input` type to use for loading the data.
          transform: The :class:`~flash.core.data.io.input_transform.InputTransform` type to use.
          transform_kwargs: Dict of keyword arguments to be provided when instantiating the transforms.
          data_module_kwargs: Additional keyword arguments to provide to the
              :class:`~flash.core.data.data_module.DataModule` constructor.
  
      Returns:
          The constructed :class:`~flash.audio.classification.data.AudioClassificationData`.
  
      Examples
      ________
  
      .. testsetup::
  
          >>> from PIL import Image
          >>> rand_image = Image.fromarray(np.random.randint(0, 255, (64, 64, 3), dtype="uint8"))
          >>> _ = [rand_image.save(f"spectrogram_{i}.png") for i in range(1, 4)]
          >>> _ = [rand_image.save(f"predict_spectrogram_{i}.png") for i in range(1, 4)]
  
      .. doctest::
  
          >>> from flash import Trainer
          >>> from flash.audio import AudioClassificationData
          >>> from flash.image import ImageClassifier
          >>> datamodule = AudioClassificationData.from_files(
          ...     train_files=["spectrogram_1.png", "spectrogram_2.png", "spectrogram_3.png"],
          ...     train_targets=["meow", "bark", "meow"],
          ...     predict_files=[
          ...         "predict_spectrogram_1.png",
          ...         "predict_spectrogram_2.png",
          ...         "predict_spectrogram_3.png",
          ...     ],
          ...     transform_kwargs=dict(spectrogram_size=(128, 128)),
          ...     batch_size=2,
          ... )
          >>> datamodule.num_classes
          2
          >>> datamodule.labels
          ['bark', 'meow']
          >>> model = ImageClassifier(backbone="resnet18", num_classes=datamodule.num_classes)
          >>> trainer = Trainer(fast_dev_run=True)
          >>> trainer.fit(model, datamodule=datamodule)  # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
          Training...
          >>> trainer.predict(model, datamodule=datamodule)  # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
          Predicting...
  
      .. testcleanup::
  
          >>> import os
          >>> _ = [os.remove(f"spectrogram_{i}.png") for i in range(1, 4)]
          >>> _ = [os.remove(f"predict_spectrogram_{i}.png") for i in range(1, 4)]
  
      """
  
      ds_kw = {
          "sampling_rate": sampling_rate,
          "n_fft": n_fft,
          "target_formatter": target_formatter,
      }
  
      train_input = input_cls(
          RunningStage.TRAINING, train_files, train_targets, **ds_kw
      )
      ds_kw["target_formatter"] = getattr(
          train_input, "target_formatter", None
      )
  
      return cls(
          train_input,
          input_cls(
              RunningStage.VALIDATING, val_files, val_targets, **ds_kw
          ),
          input_cls(
              RunningStage.TESTING, test_files, test_targets, **ds_kw
          ),
          input_cls(RunningStage.PREDICTING, predict_files, **ds_kw),
          transform=transform,
          transform_kwargs=transform_kwargs,
          **data_module_kwargs,
      )
  
imports: from typing import Any, Callable, Collection, Dict, List, Optional, Sequence, Type, Union
  import numpy
  import pandas
  from torch import Tensor
  from flash.audio.classification.input import AudioClassificationCSVInput, AudioClassificationDataFrameInput, AudioClassificationFilesInput, AudioClassificationFolderInput, AudioClassificationNumpyInput, AudioClassificationTensorInput
  from flash.audio.classification.input_transform import AudioClassificationInputTransform
  from flash.core.data.callback import BaseDataFetcher
  from flash.core.data.data_module import DataModule
  from flash.core.data.io.input import Input
  from flash.core.data.io.input_transform import INPUT_TRANSFORM_TYPE
  from flash.core.data.utilities.classification import TargetFormatter
  from flash.core.data.utilities.paths import PATH_TYPE
  from flash.core.utilities.imports import _TOPIC_AUDIO_AVAILABLE, _TOPIC_IMAGE_AVAILABLE
  from flash.core.utilities.stages import RunningStage
  from flash.image.classification.data import MatplotlibVisualization
label_desc: Use image node_id 1 for calling the AudioClassificationData obj's underlying member method code with example usage: obj.from_files(cls, train_files, train_targets, val_files, val_targets, test_files, test_targets, predict_files, sampling_rate, n_fft, input_cls, transform, transform_kwargs, target_formatter) and returns: cls