Skip to content

RandCropByPosNegLabeld wrong output format #7817

@alegiuppy

Description

@alegiuppy

I'm trying to load my validation set. Initially, I was using CenterSpatialCropd in my set of transformations and everything worked well. Then, I tried to substitute this transform with RandCropByPosNegLabeld, since it fits my work better, but now, instead of having a list of dictionaries when I define the dataset, I have a list of lists.
Below is the code for the definition of the transforms:

val_transforms=transforms.Compose([
    transforms.LoadImaged(keys=["image","label"]), 
    transforms.EnsureChannelFirstd(keys=["image","label"]), 
    transforms.EnsureTyped(keys=["image", "label"]),
    transforms.Orientationd(keys=["image","label"], axcodes="RAS"),
    transforms.Spacingd(keys=["image","label"],pixdim=(1.0,1.0,1.0),mode=("bilinear","nearest")),
    transforms.RandCropByPosNegLabeld(keys=["image","label"],label_key="label",spatial_size=(128,128,128),pos=1,neg=1,num_samples=1,image_key="image",image_threshold=0),
    transforms.ScaleIntensityRangePercentilesd(keys="image",lower=0,upper=99.5,b_min=0,b_max=1),
    transforms.CenterSpatialCropd(keys=["image","label"],roi_size=(128,128,1)),
    transforms.Lambdad(keys=["image","label"], func=lambda x:x.squeeze(-1)),
])

val_data=[train_data_paths[i] for i in val_ind]

val_dataset=CacheDataset(
    data=val_data, 
    transform=val_transforms,
    cache_rate=float(torch.cuda.device_count()) / 4.0,
    num_workers=8,
    progress=True,
)

print(f"Length of validation data: {len(val_dataset)}") 
print(f'Validation image shape {val_dataset[0]["image"].shape}') 
print(f'Validation label shape {val_dataset[0]["label"].shape}')

And here the error

print(f'Validation image shape {val_dataset[0]["image"].shape}') # dimensione prima immagine
TypeError: list indices must be integers or slices, not str

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions