I mean, this error (RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 3 and 2 in dimension 1) tells that one of the loaded images is of 2 channels. maybe, as a diagnosis, change the __getitem__() method as:
	def __getitem__(self, item):
		image, label = self.imgs[item]
		image = Image.open(image)
		img = transform(image)
        print(image, img.shape)
		return img, label

and check if any of the image gives 2-channels.