| import pandas as pd | |
| import numpy as np | |
| from torch.utils.data import Dataset | |
| import os | |
| from PIL import Image | |
| class Thyroid_Datasets(Dataset): | |
| def __init__( | |
| self, | |
| path_to_images, | |
| fold, | |
| PRED_LABEL, | |
| transform=None, | |
| sample=0, | |
| finding="any"): | |
| self.transform = transform | |
| self.path_to_images = path_to_images | |
| self.PRED_LABEL = PRED_LABEL | |
| self.df = pd.read_csv("%s/CSV/%s.csv" % (path_to_images,fold)) | |
| print("%s/CSV/%s.csv " % (path_to_images,fold), "num of images: %s" % len(self.df)) | |
| if(sample > 0 and sample < len(self.df)): | |
| self.df = self.df.sample(sample) | |
| self.df = self.df.dropna(subset = ['Path']) | |
| self.df = self.df.set_index("Path") | |
| def __len__(self): | |
| return len(self.df) | |
| def __getitem__(self, idx): | |
| X = self.df.index[idx] | |
| if str(X) is not None: | |
| image = Image.open(os.path.join(self.path_to_images,str(X))) | |
| image = image.convert('RGB') | |
| label = self.df["label".strip()].iloc[idx].astype('int') | |
| subg = self.df["subtype".strip()].iloc[idx] | |
| if self.transform: | |
| image = self.transform(image) | |
| return (image, label, subg) | |
| class Multi_Thyroid_Datasets(Dataset): | |
| def __init__( | |
| self, | |
| path_to_images, | |
| fold, | |
| PRED_LABEL, | |
| transform=None, | |
| sample=0, | |
| finding="any"): | |
| self.transform = transform | |
| self.path_to_images = path_to_images | |
| self.PRED_LABEL = PRED_LABEL | |
| self.df = pd.read_csv("%s/CSV/%s.csv" % (path_to_images,fold)) | |
| print("%s/CSV/%s.csv " % (path_to_images,fold), "num of images: %s" % len(self.df)) | |
| if(sample > 0 and sample < len(self.df)): | |
| self.df = self.df.sample(sample) | |
| self.df = self.df.dropna(subset = ['Path']) | |
| self.df = self.df.set_index("Path") | |
| def __len__(self): | |
| return len(self.df) | |
| def __getitem__(self, idx): | |
| X = self.df.index[idx] | |
| if str(X) is not None: | |
| image = Image.open(os.path.join(self.path_to_images,str(X))) | |
| image = image.convert('RGB') | |
| label = self.df["label".strip()].iloc[idx].astype('int') | |
| subg = self.df["subtype".strip()].iloc[idx] | |
| if self.transform: | |
| image = self.transform(image) | |
| return (image, label, subg) | |
| return (image, label, subg) |