RuntimeError: output with shape[1,28,28] doesn't match the broadcast shape [3,28,28]

5531 단어 인공지능

RuntimeError: output with shape [1, 28, 28] doesn’t match the broadcast shape [3, 28, 28]


Pytroch를 달리는 MNIST 핸드폰 식별 예시에서 이 오류가 발생했습니다. 오류 위치 코드는 다음과 같습니다.
transform = transforms.Compose([
	transforms.ToTensor(), 
	transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])])

분석 오류는 미니스트가 그레이스케일 이미지이기 때문에 하나의 채널만 있고 귀일화할 때의 세 채널과 일치하지 않기 때문에 세 가지 해결 방법이 있다

채널 수 변경


transform = transforms.Compose([
     transforms.ToTensor(),
     transforms.Lambda(lambda x: x.repeat(3,1,1)),
     transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
 ])

귀일화 매개 변수 변경 (1)

transform = transforms.Compose([
     transforms.ToTensor()
     transforms.Normalize(mean=[0.5], std=[0.5])
 ])

귀일화 매개 변수 변경 (2)

transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.1307,), (0.3081,))
    ])

이 방법을 거울로 삼은 것은 VictorGui의 이 박문.및 40.1307균일치와 표준차로 나뉘는데, 이 두 가지는 서로 다른 데이터 집합에 따라 계산 변화를 해야 한다.

좋은 웹페이지 즐겨찾기