728x90
스칼라(0D텐서) -> 벡터(1D텐서) -> 매트릭스(2D텐서) -> 텐서
.dim : []로 둘러싸인 층을 의미, 얼마나 둘러싸여있는지, 축을 의미한다.
.shape : 텐서 형태가 어떤지 알려준다.
scala (0D 텐서)
- scala 는 numpy 로 만들 수 있음
import numpy as np
data1 = np.array(10)
print (data1, data1.ndim, data1.shape) # ndim 은 axis 축, shape 은 행렬의 차원을 의미함
10 0 ()
vector (1D 텐서)
- vector 부터는 pytorch 의 tensor 로 만들 수 있음
- shape 은 torch.Size([3]) 와 같이 표현됨
tensor([1., 2.]) 1 torch.Size([2]) torch.Size([2])
tensor([0., 0., 0.]) 1 torch.Size([3])
matrix (2D 텐서)
# matrix (2D 텐서)
data3 = torch.FloatTensor(3, 2) # shape 을 기반으로 임의의 원소값을 가진 텐서 선언
print (data3, data3.dim(), data3.shape) # dim() 은 축, shape 은 행렬의 차원을 의미함
data4 = torch.FloatTensor([ [1, 2], [3, 4], [5, 6] ]) # 텐서 구조와 원소값을 파이썬 리스트 기반으로 넣어서, 해당 텐서 선언
print (data4, data4.dim(), data4.shape) # dim() 은 축, shape 은 행렬의 차원을 의미함
tensor([[0., 0.],
[0., 0.],
[0., 0.]]) 2 torch.Size([3, 2])
tensor([[1., 2.],
[3., 4.],
[5., 6.]]) 2 torch.Size([3, 2])
tensor
# 3D 텐서
data5 = torch.FloatTensor(3, 2, 1) # shape 을 기반으로 임의의 원소값을 가진 텐서 선언
print (data5, data5.dim(), data5.shape) # dim() 은 축, shape 은 행렬의 차원을 의미함
data6 = torch.FloatTensor([ [ [1], [2] ], [ [3], [4] ], [ [5], [6] ] ]) # 밖에서부터 안쪽으로 3개, 2개, 1개 원소값으로 선언
print (data6, data6.dim(), data6.shape) # dim() 은 축, shape 은 행렬의 차원을 의미함
tensor([[[0.],
[0.]],
[[0.],
[0.]],
[[0.],
[0.]]]) 3 torch.Size([3, 2, 1])
-> 하나 들어있는게 2개있고 그게 3개 있다는 뜻.
괄호 바깥 것부터 3개 2개 1개 순서로 들어있다는 것임.
tensor([[[1.],
[2.]],
[[3.],
[4.]],
[[5.],
[6.]]]) 3 torch.Size([3, 2, 1])
# 밖에서부터 안쪽으로 텐서 선언 이해
data7 = torch.FloatTensor([ [1], [2], [3] ])
print (data7, data7.dim(), data7.shape) # dim() 은 축, shape 은 행렬의 차원을 의미함
data8 = torch.FloatTensor([ [1, 2, 3] ])
print (data8, data8.dim(), data8.shape) # dim() 은 축, shape 은 행렬의 차원을 의미함
tensor([[1.],
[2.],
[3.]]) 2 torch.Size([3, 1])
tensor([[1., 2., 3.]]) 2 torch.Size([1, 3])
shape 은 여러 차원이 될 수 있음 각 메서드에 dtype=type 인자를 넣어, 데이터 타입 명시 가능
728x90
'AI > ML' 카테고리의 다른 글
[ML] 미니 배치와 데이터 로드(Mini Batch and Data Load) (0) | 2024.03.28 |
---|---|
[ML] nn.Module로 구현하는 선형 회귀 (0) | 2024.03.26 |
[ML] 다중 선형 회귀(Multivariable Linear regression) (1) | 2024.03.23 |
[ML] 자동 미분(Autograd) (0) | 2024.03.22 |
[ML] 선형회귀(Linear Regression) (0) | 2024.03.21 |