class Skyrmion_or_Not(Dataset):
def __init__(self, csv_file, root_dir, transform=None):
self.annotations = pd.read_csv(csv_file)
self.root_dir = root_dir
self.transform = transform
def __len__(self):
return len(self.annotations)
def __getitem__(self, index): # return specific image and target for image
# Some aspect of the code ignores the first row of the csv file and treats as the header
img_path = os.path.join(self.root_dir, self.annotations.iloc[index, 0])
# pytorch chooses index. idea sytem looks up file name in the labels file
# and then finds corresponding image/file in the relevant folder
image = np.load(img_path)
y_label = torch.tensor(int(self.annotations.iloc[index, 1])) # reading column 1 as the label
if self.transform:
image = self.transform(image)
return (image, y_label) # the y_label is it being assigned 0, 1.
This is my current custom dataset for my 2D case. I now have 3D images (dimensions 30 x 30 x 30 x 3), however I am unsure what to adjust here.
Folloeing on from this, how does one visualise a pure 3D image on matplotlib. I am aware of how I can do it on plotly, however, I want to visualise batches (previously used plt.imshow, however this only has 2d inputs). Any help would be much appreciated!