class_docstr: Btech Dataset class.
  
  Args:
      root: Path to the BTech dataset
      category: Name of the BTech category.
      transform (A.Compose): Albumentations Compose object describing the transforms that are applied to the inputs.
      split: 'train', 'val' or 'test'
      task: ``classification``, ``detection`` or ``segmentation``
      create_validation_set: Create a validation subset in addition to the train and test subsets
  
  Examples:
      >>> from anomalib.data.btech import BTechDataset
      >>> from anomalib.pre_processing import get_transforms
      >>> transform = get_transforms(image_size=256)
      >>> dataset = BTechDataset(
      ...     root='./datasets/BTech',
      ...     category='01',
      ...     transform=transform,
      ...     task="classification",
      ...     is_train=True,
      ... )
      >>> dataset[0].keys()
      dict_keys(['image'])
  
      >>> dataset.split = "test"
      >>> dataset[0].keys()
      dict_keys(['image', 'image_path', 'label'])
  
      >>> dataset.task = "segmentation"
      >>> dataset.split = "train"
      >>> dataset[0].keys()
      dict_keys(['image'])
  
      >>> dataset.split = "test"
      >>> dataset[0].keys()
      dict_keys(['image_path', 'label', 'mask_path', 'image', 'mask'])
  
      >>> dataset[0]["image"].shape, dataset[0]["mask"].shape
      (torch.Size([3, 256, 256]), torch.Size([256, 256]))
class_docstr_tok: ["Btech","Dataset","class",".","Args",":","root",":","Path","to","the","BTech","dataset","category",":","Name","of","the","BTech","category",".","transform","(","A.Compose",")",":","Albumentations","Compose","object","describing","the","transforms","that","are","applied","to","the","inputs",".","split",":","'train","'",",","'val","'","or","'test'","task",":","``","classification","``",",","``","detection","``","or","``","segmentation","``","create_validation_set",":","Create","a","validation","subset","in","addition","to","the","train","and","test","subsets","Examples",":",">",">",">","from","anomalib.data.btech","import","BTechDataset",">",">",">","from","anomalib.pre_processing","import","get_transforms",">",">",">","transform","=","get_transforms","(","image_size=256",")",">",">",">","dataset","=","BTechDataset","(","...","root='.\/datasets\/BTech","'",",","...","category='01","'",",","...","transform=transform",",","...","task=","''","classification","''",",","...","is_train=True",",","...",")",">",">",">","dataset","[","0","]",".keys","(",")","dict_keys","(","[","'image","'","]",")",">",">",">","dataset.split","=","``","test","''",">",">",">","dataset","[","0","]",".keys","(",")","dict_keys","(","[","'image","'",",","'image_path","'",",","'label","'","]",")",">",">",">","dataset.task","=","``","segmentation","''",">",">",">","dataset.split","=","``","train","''",">",">",">","dataset","[","0","]",".keys","(",")","dict_keys","(","[","'image","'","]",")",">",">",">","dataset.split","=","``","test","''",">",">",">","dataset","[","0","]",".keys","(",")","dict_keys","(","[","'image_path","'",",","'label","'",",","'mask_path","'",",","'image","'",",","'mask","'","]",")",">",">",">","dataset","[","0","]","[","``","image","''","]",".shape",",","dataset","[","0","]","[","``","mask","''","]",".shape","(","torch.Size","(","[","3",",","256",",","256","]",")",",","torch.Size","(","[","256",",","256","]",")",")"]
code: def _setup(self) -> None:
      self.samples = make_btech_dataset(
          path=self.root_category, split=self.split
      )
  
imports: from __future__ import annotations
  import logging
  import shutil
  from pathlib import Path
  import albumentations
  import cv2
  import pandas
  from pandas.core.frame import DataFrame
  from tqdm import tqdm
  from anomalib.data.base import AnomalibDataModule, AnomalibDataset
  from anomalib.data.task_type import TaskType
  from anomalib.data.utils import DownloadInfo, InputNormalizationMethod, LabelName, Split, TestSplitMode, ValSplitMode, download_and_extract, get_transforms
label_desc: Use image node_id 2 for calling the BTechDataset obj's underlying member method code with example usage: obj._setup() without return types