Tensor Manipulation 2 [01-2]

Sung.K·2021년 5월 19일
0

View(Reshape)

shape를 다시 만들어 준다.

t=np.array([[[0,1,2],[3,4,5],[[6,7,8],[9,10,11]]])
ft=torch.FloatTensor(t)
print(ft.shape) # torch.Size([2,2,3])으로 출력됨

print(ft.view([-1,3])))
print(ft.view([-1,3]).shape) #torch.Size([4,3])으로 출력됨

크기가 (2,2,3) ->(2*2,3)=(4,3) 으로 된다.

Squeeze()

view와 비슷하지만 다른점은 Squeeze는 자동으로 원하는 dimension의 element개수가 1인 경우 그 dimension을 없애준다.
크기가 (3,1)->(3,)
Squeeze(dim=?숫자)은 해당 dimension에 1이 있을 경우에 없애는 역할을 한다.

Unsqueeze()

squeeze를 반대로 해준다.
unsqueeze(0) : dim=0한것과 같다. 첫번째 dimension에 0에 1을 넣는 것이다.
크기가 (3,)->(1,3)
unsqueeze(1)을 해주면
크기가 (3,)->(3,1)

Type Casting

텐서의 shape와 metrix의 shape를 바꿔준다.
ByteTensor() : True,False값을 저장한다.

cat()

Concatenate. 두개의 텐서를 이어붙인다. cat()

mul_()

In-Place Operation. 곱하는 것이다. 메모리에 새로 선언하지 않고 정답 값을 기존의 텐서에 넣는다.

profile
Towards the goal 👀

0개의 댓글