Closed hqh1997 closed 9 months ago
Hi @hqh1997 ,
In PatchesImageDatasetLoader
, we give the model a [16*3, 512, 512] tensor
Imgs = Imgs.reshape((16*3,512,512))
Change the transform as below will work
train_transform = A.Compose( [
A.Resize(512, 512),A.RandomRotate90(p = 0.75),
A.Normalize(mean=(0.5,)*48, std=(0.5,)*48), ToTensorV2(), ] )
Hi @hqh1997 , In
PatchesImageDatasetLoader
, we give the model a [16*3, 512, 512] tensorImgs = Imgs.reshape((16*3,512,512))
Change the transform as below will work
train_transform = A.Compose( [ A.Resize(512, 512),
A.RandomRotate90(p = 0.75),
A.Normalize(mean=(0.5,)48, std=(0.5,)48), ToTensorV2(), ] )
thank you for your quick response, but it still not working, I try to print the img shape before the transform. get (512, 512, 3) the code below is data_loaders.py Tumour patches Loader part. class PatchesImageDatasetLoader(Dataset): def init(self, patches_filepaths, transform=None): super(PatchesImageDatasetLoader, self).init() self.images_filepaths = patches_filepaths self.transform = transform
def get_files(self, path, rule=".png"):
all = []
for fpathe,dirs,fs in os.walk(path):
for f in fs:
filename = os.path.join(fpathe,f)
if filename.endswith(rule):
all.append(filename)
return all
def __len__(self):
return len(self.images_filepaths)
def __getitem__(self, idx):
patches_filepath = self.images_filepaths[idx]
# print(patches_filepath),print('im here')
patches_paths = self.get_files(patches_filepath)[:16]
# print( self.get_files(patches_filepath))
print(patches_paths)
hospital = patches_filepath.split('/')[-2]
print(hospital)
base_dir = INFO_PATH
self.data = pd.read_csv(base_dir+hospital+'.csv')
# print(self.data)
Imgs = []
for path in patches_paths:
img = cv2.imread(path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
print(img.shape) ###############################it will be (512, 512, 3)
if self.transform is not None:
img = self.transform(image=img)["image"]
img = np.array(img)
Imgs.append(img)
Imgs = np.array(Imgs).astype('float64')
Imgs = Imgs.reshape((16*3,512,512))
I find reason, the code below will work, thank you for your response and excellenet work in pathology, well done @LiangJunhao-THU train_transform = A.Compose( [ A.Resize(512, 512), A.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)), ToTensorV2(), ] )
hello, author in Macro_networks train, I can use train_transform. how could I defined the right transform in Micro_networks for PatchesImageDatasetLoader. [https://github.com/Biooptics2021/PathFinder/blob/43da3deaabadd00f0338ef2de6d56dc4855da100/Prognosis/train_test.py#L42C16-L42C16]