텐서Tensor
PyTorch에서는 텐서Tensor를 사용해 모델의 입출력 및 매개변수로 사용되는 데이터를 부호화한다.
텐서는 기본적으로 넘파이 어레이와 매우 유사하지만, GPU나 다른 하드웨어 가속기에서 실행해 성능을 향상시킬 수 있다.
또한 텐서의 자동 미분 기능은 역전파 단계에서 가중치와 편향의 기울기Gradient를 자동으로 추적하도록 지원한다.
텐서 생성
-
주어진 데이터로부터 텐서를 생성한다.
🧶
torch.tensor()
함수는 파이썬 리스트 또는 넘파이 어레이를 텐서로 변환한다.1 2 3 4 5 6 7 8 9
# 파이썬 리스트 -> 텐서 a = [1, 2, 3] t_a = torch.tensor(a) print(t_a) # 넘파이 어레이 -> 텐서 b = np.array([4, 5, 6], dtype=np.int32) t_b = torch.from_numpy(b) print(t_b)
실행 결과
1 2
tensor([1, 2, 3]) tensor([4, 5, 6], dtype=torch.int32)
-
특정 값으로 이루어진 텐서를 생성한다.
🧶 값 torch.ones(shape)
1 torch.zeros(shape)
0 torch.rand(shape)
[0, 1) 범위의 난수(균등 분포) torch.randn(shape)
[0, 1) 범위의 난수(정규 분포)
텐서의 속성
생성된 텐서 객체는 모양(shape
), 데이터 타입(dtype
), 저장 장치(device
)의 3가지 속성을 가진다.
객체 생성 시 매개변수(dtype, device)를 지정하면 데이터 타입 및 저장 장치를 설정할 수 있다.
텐서의 속성에 접근하려면 🧶tensor.shape
, tensor.dtype
, tensor.device
를 사용한다.
1
2
3
4
5
device = "cuda" if torch.cuda.is_available() else "cpu"
c = [7, 8, 9]
t_c = torch.tensor(c, device=device)
print(t_c.device)
📌REF
- Machine Learning with PyTorch and Scikit-Learn
- https://tutorials.pytorch.kr/beginner/basics/tensorqs_tutorial.html