Study

PyTorch 기본 명령어

kynikosist 2026. 4. 7. 04:53

1. 텐서 생성 및 초기화

  • torch.tensor(): 파이썬 리스트 등을 사용하여 스칼라, 벡터, 행렬 등 다양한 차원의 텐서를 생성합니다.
  • torch.rand(size): 지정한 size 크기의 무작위 숫자로 채워진 텐서를 만듭니다.
  • torch.zeros(size) / torch.ones(size): 0 또는 1로만 채워진 텐서를 생성합니다.
  • torch.zeros_like(input) / torch.ones_like(input): 입력된 input 텐서와 모양(shape)이 동일하면서 0 또는 1로 채워진 새로운 텐서를 반환합니다.
  • torch.arange(start, end, step): start부터 end 직전까지 step 간격으로 숫자를 생성합니다.

2. 텐서 정보 및 속성 확인

  • tensor.ndim: 텐서의 차원(dimension) 수를 확인합니다.
  • tensor.shape: 텐서의 모양(내부 요소들의 배열 방식)을 확인합니다.
  • tensor.dtype: 텐서에 저장된 데이터의 타입(예: torch.float32)을 확인합니다.
  • tensor.device: 텐서가 현재 CPU와 GPU 중 어느 장치에 저장되어 있는지 확인합니다.
  • tensor.item(): 단일 요소(스칼라) 텐서에서 파이썬 표준 정수나 실수형 숫자를 추출합니다.

3. 수학 연산 및 행렬 곱셈

  • torch.add() (또는 +), torch.multiply() (또는 *): 텐서의 덧셈 및 요소별 곱셈(Element-wise multiplication)을 수행합니다.
  • torch.matmul(), torch.mm() (또는 @): 두 텐서 간의 행렬 곱셈(Matrix multiplication)을 수행합니다.
  • torch.transpose(input, dim0, dim1) / tensor.T: 지정한 두 차원을 맞바꾸거나, 텐서의 전치(Transpose)를 수행합니다.
    전치에 대한 설명(나무위키https://namu.wiki/w/%EC%A0%84%EC%B9%98%ED%96%89%EB%A0%AC)
  • tensor.min(), tensor.max(), tensor.mean(), tensor.sum(): 텐서의 최솟값, 최댓값, 평균, 합계를 각각 구합니다.
  • tensor.argmin(), tensor.argmax(): 텐서 내에서 최솟값이나 최댓값이 위치한 인덱스(위치)를 찾습니다.

4. 텐서 형태 및 차원 조작

  • tensor.type(dtype): 텐서의 데이터 타입을 변경합니다.
  • torch.reshape(input, shape): 데이터 값은 유지한 채 텐서를 새로운 shape으로 형태를 변경합니다.
  • tensor.view(shape): 원본 텐서와 동일한 메모리 데이터를 공유하면서 다른 모양으로 텐서를 보여줍니다.
  • torch.stack(tensors, dim): 같은 크기를 가진 여러 텐서를 지정한 차원(dim)을 기준으로 쌓아 합칩니다.
  • torch.squeeze(input): 텐서의 차원 중에서 크기가 1인 차원을 모두 제거합니다.
  • torch.unsqueeze(input, dim): 특정 인덱스 위치(dim)에 크기가 1인 차원을 추가합니다.
  • torch.permute(input, dims): 지정한 순서(dims)대로 텐서 차원의 순서를 재배치합니다.

5. NumPy 데이터 변환

  • torch.from_numpy(ndarray): NumPy 배열(Array)을 파이토치 텐서로 변환합니다.
  • tensor.numpy(): 파이토치 텐서를 NumPy 배열로 변환합니다 (단, 텐서가 CPU에 위치해 있어야 정상 작동합니다).

6. 난수 생성 제어 (재현성)

  • torch.manual_seed(seed): 코드를 다시 실행해도 동일한 무작위 값이 나오도록 난수 생성 시드(Seed)를 고정합니다.

7. 하드웨어 장치(GPU/CPU) 관리

  • torch.cuda.is_available(): 시스템에서 Nvidia GPU(CUDA)를 사용할 수 있는지 여부를 확인합니다.
  • torch.cuda.device_count(): 파이토치가 접근할 수 있는 GPU의 개수를 반환합니다.
  • torch.backends.mps.is_available(): Mac의 Apple Silicon (M1/M2 등) GPU를 사용할 수 있는지 확인합니다.
  • tensor.to(device): 특정 텐서나 모델을 지정된 장치("cuda", "mps", "cpu") 메모리로 보냅니다.
  • tensor.cpu(): GPU에 있는 텐서를 다시 CPU 메모리로 복사하여 이동시킵니다.

8. 딥러닝 신경망 모듈

  • torch.nn.Linear(in_features, out_features): 행렬 곱셈을 구현하는 완전 연결 계층(피드포워드 레이어)을 생성합니다.