关于dataset.vision.RandomXXX算子的随机性
收藏回复举报
关于dataset.vision.RandomXXX算子的随机性
t('forum.solved') 已解决
发表于2023-12-07 04:06:59
0 查看

我希望得到同一幅图像的2副不同的随机增强变换,结果得到的总是相同的结果。

我的代码参考如下,运行出来diff的值一直是0,请问有什么问题吗,我应该如何修改代码

self.tranforms = [
    # vision.RandomCrop(32, padding=4),
    vision.RandomResizedCrop(32, scale=(0.5, 1.0)),
    vision.RandomHorizontalFlip(0.5),
    vision.RandomColorAdjust(0.4, 0.4, 0.2, 0.1),
    # vision.RandomSolarize(),
    vision.RandomEqualize(0.5),
    vision.ToTensor(),
    vision.Normalize(
        mean=[0.4914, 0.4822, 0.4465], 
        std=[0.2471, 0.2435, 0.2616], 
        is_hwc=False)
]

du = de.GeneratorDataset(
    train_unlabeled_dataset,
    shuffle=True,
    num_parallel_workers=self.args.num_workers,
    # python_multiprocessing=True,
    column_names=[
        "unlabel0",
        "target",
        "index",
        "uncr"])
du = du.map(operations=transforms.Duplicate(), input_columns=["unlabel0"], output_columns=["unlabel0", "unlabel1"], column_order=["unlabel0", "unlabel1", "target",
        "index", "uncr"])
du = du.map(operations=self.tranforms, input_columns=["unlabel0"], num_parallel_workers=self.args.num_workers)
du = du.map(operations=self.transforms, input_columns=["unlabel1"], num_parallel_workers=self.args.num_workers)
du = du.batch(
    args.batchsize,
    num_parallel_workers=args.num_workers,
    # python_multiprocessing=True,
    drop_remainder=True)

unlabel_iterable = du.create_tuple_iterator(
            num_epochs=-1, do_copy=False)
unlabel_iterator = iter(unlabel_iterable)
inputs_u, inputs_u2, _, _, temp_u = unlabel_iterator.__next__()
diff = ops.abs(inputs_u - inputs_u2).sum()

我要发帖子