변환 데이터 향상은 입력 및 레이블 그림에서 동일한 변환을 수행합니다.

네트워크를 훈련 할 때 데이터 증가를 사용하여 데이터 세트를 확장하면 pytorch가 일반적으로 사용됩니다.

transforms.Compose([
    transforms.RandomSizedCrop(max(resize)),
    transforms.RandomHorizontalFlip(),
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])

변형하는 방법. 변환에는 많은 임의 변환 방법이 있으며 입력 이미지와 레이블 이미지가 동일한 변환을 수행하도록해야하는 경우 문제가 발생합니다.
따라서 모든 변환 방법은 다음과 같이 분해됩니다.

p1 = random.randint(0,1)
p2 = random.randint(0,1)
transform = transforms.Compose([
    transforms.ToPILImage(),
    transforms.RandomCrop(128),
    transforms.RandomHorizontalFlip(p1),
    transforms.RandomVerticalFlip(p2)
])
seed = np.random.randint(2147483647)  # make a seed with numpy generator
random.seed(seed)  # apply this seed to img tranfsorms
x = transform(x)
random.seed(seed)  # apply this seed to img tranfsorms
t = transform(t)

입력 (x) 및 레이블 (t)이 동시에 (확률은 1) 또는 동시에 변경되지 않도록 변환의 두 확률 무작위 변환에 각각 적용되는 무작위로 주어진 p1 p2 (0 또는 1) (확률은 0), 확률에 의존하지 않는 randomcrop의 경우, 기능이 적용되기 전에 매번 동일한 종자를 설정하여 임의의 작물 면적이 동일하도록 할 수 있습니다.

추천

출처blog.csdn.net/qq_41872271/article/details/107265052