본문 바로가기
AI_Student/Pytorch

1. Pytorch Tensor[파이토치, 텐서]

by AndrewL 2021. 1. 13.

1. Pytorch Tensor[파이토치, 텐서] 

 

딥러닝 프레임워크인 Pytorch의 기본 개념인 Tensor에 대해서 정리해보자.

 

Tensor는 numpy의 ndarray와 비슷하며, GPU를 사용한 연산 가속이 가능하다.


-생성(torch. + empty, ones, rand, zeros, tensor ) 

#empty
x = torch.empty(5,5)
print(x)

empty는 초기화되지 않은 행렬을 생성하며 , 그 시점에서 할당된 메로리에 존재하던 값들이 초기값으로 나타남

 

#ones
y = torch.ones(5,5)
print(y)

torch.ones-> 1로 다 초기화된 tensor생성.

 

#zeros
z = torch.zeros(3,3)
print(z)

torch.zeros-> 0으로 초기화된 tensor생성.

 

#rand
a = torch.rand(4,2)
print(a)

torch.rand(4,2)-> (4,2)모양의 난수 생성.

 

#torch.tensor
b = torch.tensor([[1.1,2.2],[2.2,3.3]])
print(b)

데이터로부터 tensor를 직접 생성.

 

#x.size
q = torch.tensor([[1.1,2.2,4.4],[2.2,3.3,5.5]])
print(q.size())

size() -> tensor의 크기를 알고싶을 때

 

#type(x)
w = torch.tensor([[1.1,2.2,4.4],[2.2,3.3,5.5]])
print(type(w))

type을 확인하고 싶을 때

 


-연산부분

x = torch.rand(2,2)
y = torch.rand(2,2)
print(x+y)

연산하는 두 텐서의 크기가 맞아야 한다. = torch.add(x,y)

 

x = torch.rand(2,2)
y = torch.rand(2,2)
print(y.add(x))
print(y.add_(x))

두 식의 값이 같지만, add_ 을 사용하면 y값이 연산결과로 대체된다.( add는 단순히 연산만 실행)

 

y = torch.rand(2,2)
print(y[1,1])
print(y[:,1])

[1,1]값을 가져오니까 Scalar인데, 두번째는 인덱스1행을 가져오므로 [a,b]형태이다

 

 

#view
x= torch.rand(8,8)
print(x.view(64))

CNN 컨볼류션 연산을 하다가 마지막 fully connected layer에서 펴줄때 자주 사용.

 

#torch <-> numpy 형변환
x = torch.rand(2,2)
print(type(x))
y = x.numpy()
print(type(y))

torch로 만들어주고, .numpy()를 통해 numpy로 형변환.

 

#item -> tensor가 스칼라 값일 떄 사용가능
x = torch.ones(1)
print(x)
print(x.item())

item() -> loss함수 계산 값을 뽑아 내고 싶을 때 주로 사용됨.

 

'AI_Student > Pytorch' 카테고리의 다른 글

2. Pytorch 미분 연산 개념  (0) 2021.01.20

댓글