이론 문제 1

문제내용

  1. squeeze() 함수는 모든 차원에서 크기가 1인 축을 제거한다. (O/X)
  2. 아래 코드에서 y 텐서의 크기는 (1, 3, 4)다. (O/X)
x = torch.rand(3, 4)
y = x.unsqueeze(0)
  1. 아래 코드에서 y 텐서의 크기는 (6,)다. (O/X)
import torch

x = torch.rand(2, 3)
y = x.view(-1)
  1. NLP의 경우 최소 4차원 이상의 텐서를 사용해야 한다. (O/X) → 3차원 이상이면 가능

  2. 두 개의 텐서를 수직으로 쌓아 새로운 텐서를 만들 때, torch.concat ****을 쓰면 된다. (O/X)

    → cat만 사용하면 됨

이론 문제 2

문제내용

<aside> 🎈 다음 O,X 문제를 푸시고 , 근거도 서술도 해주세요☺️

</aside>

  1. 넘파이에서는 GPU에서 텐서 조작 및 동적 신경망 구축이 가능하다. (X) → 넘파이는 CPU에서 사용되어 동적 신경망 구축이 불가능 (pythorch는 사용 가능)

  2. 넘파이와 다르게 파이토치에서는 자동 미분 패키지가 있는 장점이 있다. (O)

  3. 다음의 실행 결과는 옳다. (이유도 설명하시오) (O) → 브로드캐스트 기능으로 맞음

    import torch
    m1 = torch.FloatTensor([[1, 2]])
    m2 = torch.FloatTensor([[3], [4]])
    print(m1 + m2)
    

    출력 : tensor([[4., 5.], [5., 6.]])

  4. 실행 결과가 옳은지 판단하시오. (X)

t = np.array([[[0, 1, 2],[3, 4, 5]], [[6, 7, 8],[9, 10, 11]]])
ft = torch.FloatTensor(t)
print(ft.shape)

출력 : torch.Size([3, 2, 2])

  1. In-place operation 중 c 을 쓰면 해당 텐서의 메모리 공간을 직접 조작하므로 텐서의 값이 직접 변경된다. (O) → inplace 연산

실습 문제 3