인프런 커뮤니티 질문&답변

youngwookr님의 프로필 이미지
youngwookr

작성한 질문수

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 [데이터과학 Part3]에 파이토치(PyTorch) 텐서 연산 관련 수학과 구현 정리 (이론+실습) 파이토치(PyTorch) 텐서 연산 관련 수학 정리 강의 질

해결된 질문

작성

·

337

·

수정됨

1

5분 50초쯤에

data1 = torch.FloatTensor([1,2]) # 1,2 원소를 가진 1D 텐서 선언

이걸 가르키면서 정확히 말하면 2차원 벡터라고 말씀하셨는데

 그럼

data1 = torch.FloatTensor([1,2,3,4])

print(data1)

tensor([1., 2. ,3., 4.])

이렇게 된다면 4차원이 되는건가요?

 

다른 블로그나 구글링을 해보면

2. 벡터(1D Tensor)

  • 숫자들의 배열을 벡터라고 하며 1차원 텐서라고 한다.

  • 벡터의 축의 개수는 1개이다.

vector = np.array([1, 2, 3, 4, 5])
print(vector)
print(vector.ndim)
print(vector.shape)
[1 2 3 4 5]
1
(5,)

이렇게 말하고 있습니다.

 

 

강사님의 02_tensor.md 파일을보면

벡터(1D 텐서)

  • 벡터(1D 텐서): 숫자 여러 개가 특정 순서대로 모여 있는것을 의미함 (배열이라고 이해하면됨)

  • 하나의 벡터가 이루는 데이터의 갯수가 n개이면 n-차원 벡터라고함

  • 벡터는 열 벡터, 행 벡터 둘다 가리키지만, 열 벡터로 표현하는것이 일반적임

이라고 하는데 갯수가 n개이면 n-차원 벡터 이말과 저위의 다른 누군가의 블로그(구글링)의 말에 혼동이 좀 생기는것 같습니다.

 

아마 강사님께서 차원의 대한 얘기가 혼동될 수 있다고 수차례 말씀하셨는데 이부분인가 싶기도합니다.

아니면 제가 잘못 생각하고 있는부분이 있는지 알려주시면 감사하겠습니다

 

답변 1

0

안녕하세요. 답변 도우미입니다.

네 강의내에서 해당 부분에 대해 용어가 동일하게 쓰이는 경우도 많아서, 혼돈의 가능성이 있음을 이야기드리고 있습니다. 대부분 관련 부분이 나올 때마다, 다시 한번씩 이야기드리고 있어서, 이 부분도 한번 참고해보시면 좋을 것 같고요. 조금더 다른 용어로 구분해서 이야기를 드리면,

차원(Dimension)과 차원의 크기(Dimensionality)에 대한 혼동이 있을 수 있습니다. 텐서(Tensor)는 다차원 배열로 표현되며, 차원은 텐서의 축(axis) 개수를 의미합니다.

예를 들어, torch.FloatTensor([1, 2])는 원소가 2개인 1차원 텐서입니다. 이는 1개의 축으로 구성되어 있으므로 1차원이라고 말할 수 있습니다. 그러나 이것은 벡터이기도 합니다.

torch.FloatTensor([1, 2, 3, 4])의 경우에도 원소가 4개인 1차원 텐서입니다. 여전히 1개의 축으로 구성되어 있으므로 1차원입니다. 이 또한 벡터입니다. 차원의 크기는 원소의 개수를 나타내는 것이지, 차원 자체가 아닙니다.

일반적으로 벡터의 차원은 벡터가 표현하는 공간의 차원을 의미합니다. 예를 들어, 2차원 벡터는 2차원 공간에 위치한 벡터를 나타냅니다. 그러나 여기서 말하는 차원은 텐서의 축 개수를 의미하는 것이며, 벡터의 차원과는 다른 개념입니다.

따라서 torch.FloatTensor([1, 2, 3, 4])는 여전히 1차원 텐서이고, 벡터이기도 합니다. 차원의 크기는 4이며, 벡터는 1차원 공간에 위치한 것을 의미합니다.

감사합니다.

youngwookr님의 프로필 이미지
youngwookr

작성한 질문수

질문하기