반응형
non-data
torch.Tensor와 torch.tensor는 같으면서도 다른 역할을 한다. 기본적으로 torch.Tensor는 데이터를 입력하지 않더라도 사용이 가능하지만 torch.tensor의 경우에는 데이터를 무조건 넣어주어야 한다.
torch.Tensor()
# tensor([])
torch.tensor()
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: tensor() missing 1 required positional arguments: "data"
torch.tensor(())
# tensor([])
dimension
추가적으로 가장 중요하다고 생각하는 차이점이 있는데, 아래의 예시를 통해 살펴보자.
torch.Tensor(10)
# tensor([8.9683e-44, 0.0000e+00, 4.4842e-44, 0.0000e+00, 7.0392e+08, 3.0859e-41,
# 7.4066e+28, 1.2195e+01, 0.0000e+00, 0.0000e+00])
torch.tensor(10)
# tensor(10)
torch.Tensor(10)을 사용하면 10 차원의 tensor를 반환하는 반면, torch.tensor(10)을 사용하면 하나의 tensor가 출력된다.
dtype
마지막으로는 dtype이 다르다.
torch.Tensor([10]).dtype
# torch.float32
torch.tensor([10]).dtype
# torch.int64
torch.Tensor는 기본적으로 float32 형태로 데이터를 반환하지만, torch.tensor는 int64를 반환한다. 이와 같은 차이점을 정확하게 인지하고 본인의 분석에 맞는 함수를 사용하면 된다.
'Python > Pytorch' 카테고리의 다른 글
[Pytorch] Learning Rate Scheduler 사용하기 (0) | 2022.11.17 |
---|---|
[Pytorch] BCELoss, BCEWithLogitsLoss, CrossEntropyLoss (0) | 2022.09.03 |
[Error] CUDA-LAUNCH_BLOCKING=1 error (0) | 2022.06.25 |
[Error] module 'scipy.sparse' has no attribute 'coo_array' (0) | 2022.06.23 |
[Error] Broken pipe (0) | 2022.06.23 |