Attributes
- shape : 형태
- dtype (datatype) : 타입 (default = float32)
- device : 학습에 사용할 자원 (default = cpu)
t = torch.zeros(4, 3)
print(t)
"""
tensor([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
"""
print(t.shape)
"""
torch.Size([4, 3])
"""
print(t.dtype)
"""
torch.float32
"""
print(t.device)
"""
cpu
"""
shape 관련 함수들
- unsqueeze : rank 늘리기,
- 위 예제의 torch.zeros(4, 3)의 rank는 2.
- torch.zeros(4,4,3)의 rank는 3.
- 차원을 늘린다고 생각하면 된다.
t2 = torch.rand(2)
print("t2: ")
print(t2)
print(t2.shape)
t2AddRank = t2.unsqueeze(0)
print(t2AddRank)
print(t2AddRank.shape)
"""
t2:
tensor([0.7109, 0.1563])
torch.Size([2])
tensor([[0.7109, 0.1563]])
torch.Size([1, 2])
"""
- reshape : 원하는 shape로 바꾼 동일한 값의 텐서 리턴
- permute : shape(차원)을 교환
t = torch.rand(192)
print(t.shape)
print("basic t >> ",t.shape)
t = t.reshape(3, 8, 8)
print(t.shape)
print("reshape >> ",t.shape)
t = t.permute(1, 2, 0)
print("permute >> ",t.shape)
"""
torch.Size([192])
basic t >> torch.Size([192])
torch.Size([3, 8, 8])
reshape >> torch.Size([3, 8, 8])
permute >> torch.Size([8, 8, 3])
"""
device
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
"""
-보일러 코드-
gpu 사용 가능하면, gpu 사용.
불가능하면, cpu 사용
"""
t_gpu = t.cuda(device)
"""
디바이스를 삽입
"""