Python

(A,) <-- 콤마는 왜쓰는걸까? (1D Tuple)

쉽게가자 2020. 5. 23. 17:19

파이토치로 코딩을 할 때, 가끔 이런 코드와 마주친다.

torchvision.transforms.Normalize((0.1307,), (0.3081,))

Normalize 클래스의 인자로 두개의 숫자를 넣는것은 이해가 되는데, 괄호 안에 콤마(',')를 넣는것은 무슨 의미일까?

그냥 편하게 이런식으로 적으면 안되는걸까?

torchvision.transforms.Normalize(0.1307, 0.3081)

구글링을 해보니 파이썬 문법중 튜플이라는 타입이 있는데, 원소가 1개인 튜플을 정의하려면 괄호안에 콤마(',') 를 하나 적어야 한다고 한다.

그냥 괄호만 적으면 튜플이 아닌 숫자 타입으로 인식되기 때문.

Normalize 클래스는 다차원 텐서를 지원하기 위해서, 튜플 타입으로 ave, std 값을 입력받는데, 이를 위해서 제일 처음에 나온것 같은 난해한 코드가 나온것이었다.