주어진 코드에서는 파이토치의 텐서 연산을 사용하여 텐서의 차원을 변경하는 예시가 제시되었습니다. 코드를 한 줄씩 살펴보면서 설명해보겠습니다:
1. `i = torch.arange(16).reshape(2, 2, 4)`: 0부터 15까지의 숫자로 이루어진 1차원 텐서를 생성한 후, `reshape()` 함수를 사용하여 `(2, 2, 4)` 모양의 3차원 텐서로 변형합니다. 따라서 `i`는 다음과 같은 모양을 갖습니다:
```
tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
```
`i.shape`를 출력하면 `torch.Size([2, 2, 4])`가 나타납니다. 이는 `i`의 모양을 나타내는 튜플입니다.
2. `j = i.transpose(1, 2)`: `i`의 차원을 변환하여 `j`를 생성합니다. `transpose()` 함수를 사용하여 차원 1과 차원 2를 서로 바꿈으로써 `i`의 차원을 변경합니다. 따라서 `j`는 다음과 같은 모양을 갖습니다:
```
tensor([[[ 0, 4],
[ 1, 5],
[ 2, 6],
[ 3, 7]],
[[ 8, 12],
[ 9, 13],
[10, 14],
[11, 15]]])
```
`j.shape`를 출력하면 `torch.Size([2, 4, 2])`가 나타납니다. 이는 `j`의 모양을 나타내는 튜플입니다.
결과적으로, `i`는 `(2, 2, 4)` 모양의 3차원 텐서이며, `j`는 `(2, 4, 2)` 모양의 3차원 텐서로 변환된 것을 확인할 수 있습니다. `transpose()` 함수를 사용하여 차원을 변경함으로써 텐서의 데이터가 재배열되었습니다.
4. GPU 사용하기
코랩에서 device 변경하는 방법
상단 메뉴 -> 런타임 -> 런타임 유형변경 -> 하드웨어 가속기를 GPU로 변경 -> 저장 -> 다시 시작 및 모두실행
위의 코드는 파이토치를 사용하여 텐서(Tensor)를 조작하는 예시입니다. 코드를
한 줄씩 살펴보겠습니다:
1. `tensor = tensor.reshape(4, 3)`: `tensor` 변수의 형태를 `(4, 3)`으로
변경합니다. 이는 원래 텐서의 요소들을 4개의 행과 3개의 열로 재구성하는
작업입니다. 텐서의 모양을 변경하기 위해 `reshape()` 함수를 사용합니다.
2. `tensor = tensor.int()`: `tensor`의 데이터 타입을 정수형(integer)으로
변환합니다. 이는 텐서의 요소들을 정수로 변환하는 작업입니다. `int()` 함수를
사용하여 변환합니다.
3. `if torch.cuda.is_available():`: 현재 시스템에서 CUDA를 사용할 수 있는지
확인하는 조건문입니다. CUDA는 NVIDIA의 GPU를 활용한 연산 가속을 제공하는
도구입니다.
4. `print('GPU를 사용할 수 있음')`: CUDA를 사용할 수 있다면 'GPU를 사용할
수 있음'을 출력합니다. 이는 CUDA를 사용하여 GPU 가속 연산을 수행할 수
있는지 여부를 확인하는 메시지입니다.
5. `tensor = tensor.to('cuda')`: CUDA를 사용할 수 있다면, `tensor`를 GPU
메모리로 이동시킵니다. 이를 통해 GPU에서 텐서 연산을 수행할 수 있습니다.
`'cuda'`는 CUDA 디바이스를 의미하며, `.to()` 메소드를 사용하여 텐서를 특정