예를 들어 설명해보자
data_int = [1,2,3,4]
data_float = [1.,2.,3.,4.]
data_boolean = [True, False]
print(torch.Tensor(data_int), torch.Tensor(data_int).dtype) #tensor([1., 2., 3., 4.]) torch.float32
print(torch.tensor(data_int), torch.tensor(data_int).dtype) #tensor([1, 2, 3, 4]) torch.int64
print(torch.Tensor(data_float), torch.Tensor(data_float).dtype) #tensor([1., 2., 3., 4.]) torch.float32
print(torch.tensor(data_float), torch.tensor(data_float).dtype) #tensor([1., 2., 3., 4.]) torch.float32
print(torch.Tensor(data_boolean), torch.Tensor(data_boolean).dtype) #tensor([1., 0.]) torch.float32
print(torch.tensor(data_boolean), torch.tensor(data_boolean).dtype) #tensor([ True, False]) torch.bool
torch.Tensor([1,2]) 리스트로 값을 넣었지만, 스칼라 값 한 개만 넣게 된다면 리스트 안에 n개의 데이터가 랜덤으로 들어간다.
torch.Tensor(3)
#tensor([2.4990e-36, 0.0000e+00, 0.0000e+00]
torch.Tensor(3).dtype
#torch.float32
하지만 torch.tensor(3)의 경우 스칼라 값도 하나의 데이터로 인식한다.
torch.tensor(3)
#tensor(3)
torch.tensor(3).dtype
#torch.int64
자동 미분을 이용하기 위한 requires_grad 함수를 사용한다.
torch.Tensor([2.,3.]), requires_grad = True)
#Error, Tensor안에는 requires_grad 파라미터 존재하지 않기 때문
torch.tensor([2.,3.]), requires_grad = True)
#tensor([2.,3.]), requires_grad = True, tensor안에는 requires_grad 파라미터 존재