코딩걸음마

[딥러닝] Pytorch 기초연산 본문

딥러닝_Pytorch

[딥러닝] Pytorch 기초연산

코딩걸음마 2022. 6. 23. 17:16
728x90

우선 tensor의 이해를 쉽게 하기 위해 , 기초 부터 정의해보자

 

 

하나의 data를 하나의 큐브라고 생각하면 이해가 쉽습니다.

해당 Tensor에 존재하는 data 수는 K*n*m 개이다

 

1. 기본연산1

아래의 코드를 그림으로 표현하면 다음과 같다

a = torch.FloatTensor([[1, 2],
                       [3, 4]])
b = torch.FloatTensor([[1, 1],
                       [1, 1]])

a.shape = (2,2)      b.shape = (2,2)

1-1.  + 더하기 연산

a + b
tensor([[2., 3.],
        [4., 5.]])

위치가 같은 큐브와 각각 더한다.

 

 

1-2.  - 빼기 연산

a - b
tensor([[-1.,  0.],
        [ 0.,  1.]])

위치가 같은 큐브와 각각 뺀다.

 

1-3.  x 곱하기 연산

a * b
tensor([[1., 2.],
        [3., 4.]])

 

위치가 같은 큐브와 각각 곱한다.

물론 **와 같이 지수연산도 가능하다.

 

1-4.  /  나누기 연산

a = torch.FloatTensor([[1, 2],
                       [3, 4]])
b = torch.FloatTensor([[2, 2],
                       [2, 2]])
a / b
tensor([[0.5000, 1.0000],
        [1.5000, 2.0000]])

위치가 같은 큐브와 각각 나눈다.

1-5.  기타 연산

논리연산자

a == b
a != b
a <= b
a >= b
a in b   #a의 data중 하나라도 b에 있는경우 True를 반환

a==b에 대한 결과는

tensor([[False,  True],
        [False, False]])

위와 같이 bool 타입으로 출력이 된다.

 

2. 기본연산2

2-1.  sum 합연산

x = torch.FloatTensor([[1, 2],
                       [3, 4]])
x.sum()
tensor(10.)

sum은 scala 로 표현이 된다.

파라미터 dim =  를 추가하여 어떤 차원을 기준으로 합칠 것인지 정할 수 있다.

x.sum(dim=0)
tensor([4., 6.])

1차원을 기준으로 합쳐라

x.sum(dim =-1)
tensor([3., 7.])

2차원을 기준으로 합쳐라 / 마지막 차원을 기준으로 합쳐라

 

 

 

2-2.  mean 평균연산

x.mean()
tensor(2.5000)​

mean은 scala 로 표현이 된다.

물론 파라미터 dim =  를 추가하여 어떤 차원을 기준으로 평균을 구할 것인지 정할 수 있다.

 

3. Tensor와 Scala 연산

x = torch.FloatTensor([[1, 2],
                       [3, 4]])
y = 1
x + y
tensor([[2., 3.],
        [4., 5.]])

4. Tensor와 Vector 연산

x = torch.FloatTensor([[1, 2],
                       [4, 8]])
y = torch.FloatTensor([3,5])
tensor([[ 2.,  4.],
        [ 5., 10.]])

5. Tensor와 Tensor (shape가 다른경우)

x = torch.FloatTensor([[1, 2]])
y = torch.FloatTensor([[3],
                       [5]])
tensor([[4., 5.],
        [6., 7.]])

여기부터 이제 머리가 아파온다..

 

 

728x90
Comments