I am new to pytorch and I am trying to work on project of human activit recognition.from my understanding the transforms operations are applied to the original data at every batch generation and upon every epoch you get different version of the dataset but the original is left unchanged and unused.
But wen I get data with the shape for exemple (112,112,16,3)
where 112 are height and width , 16 are the number of rgb frames
know after applying a series of transformation using pytorch,if I want to visualize the data after augmentation using the matplotlib librairy for exemple
what should I take into consideration ?
I ve tried something like this
for batch in train_data_loader:
inputs, targets = batch
for img in inputs:
image = img.cpu().numpy()
# transpose image to fit plt input
image = image.T
# normalise image
data_min = np.min(image, axis=(1,2), keepdims=True)
data_max = np.max(image, axis=(1,2), keepdims=True)
scaled_data = (image - data_min) / (data_max - data_min)
# show image
plt.imshow(scaled_data)
plt.show()
But got an error TypeError : invalid shape (112.112.16.3) for image data
plt.imshow expects a valid image format while you are trying to visualize 16 images at once.
You would thus need to either visualize a single slice only or create a subplot and iterate the tensor in dim2 to visualize each slice separately.
Here is a minimal code snippet:
x = torch.randint(0, 256, (112, 112, 16, 3)).byte()
# visualize first slice only
plt.imshow(x[:, :, 0])
# visualize all
fig, axarr = plt.subplots(4, 4)
axarr = axarr.reshape(-1)
for idx in range(x.size(2)):
x_ = x[:, :, idx]
ax = axarr[idx]
ax.imshow(x_)
thank you for your answer @ptrblck
juste another question if I want to read the frames from the dataloader
this is the exemple I am working with
train_loader = torch.utils.data.DataLoader(train_data,batch_size=opt.batch_size, shuffle=(train_sampler is None), num_workers=opt.n_threads,pin_memory=True, sampler=train_sampler, worker_init_fn=worker_init_fn)
I should read the image from train data ?
and if I am executing the file from the anaconda prompt terminal is there any instructions I should be adding to visaulize the images ?