반응형
1. 텐서(Tensors)
- 클래스:
torch.Tensor
: 모든 텐서 연산의 기본 클래스입니다.
- 함수:
torch.tensor(data)
: 데이터로부터 텐서를 생성합니다.torch.zeros(size)
,torch.ones(size)
,torch.rand(size)
,torch.randn(size)
: 특정 크기의 텐서를 생성합니다.torch.arange(start, end, step)
,torch.linspace(start, end, steps)
: 특정 범위의 값들로 텐서를 생성합니다.
2. 자동 미분(Autograd)
- 클래스:
torch.autograd.Variable
: 텐서와 거의 동일하지만, 자동 미분 기능을 추가로 제공합니다.torch.autograd.Function
: 사용자 정의 autograd 함수들을 생성할 수 있습니다.
- 함수:
torch.autograd.grad(outputs, inputs)
: 주어진 출력에 대한 입력의 기울기를 계산합니다.torch.autograd.backward(tensor)
: 역전파를 수행하여 기울기를 계산합니다.torch.autograd.no_grad()
: 그래디언트 계산을 비활성화합니다.
3. 신경망(Neural Networks)
- 클래스:
torch.nn.Module
: 모든 신경망 모델의 기본 클래스입니다.torch.nn.Linear
: 선형 변환을 수행하는 완전 연결층입니다.torch.nn.Conv2d
: 2D 컨볼루션 층입니다.torch.nn.RNN
,torch.nn.LSTM
,torch.nn.GRU
: 순환 신경망 (RNN) 층들입니다.
- 함수:
torch.nn.functional.relu(x)
,torch.nn.functional.sigmoid(x)
,torch.nn.functional.tanh(x)
: 활성화 함수들입니다.torch.nn.functional.cross_entropy(input, target)
,torch.nn.functional.mse_loss(input, target)
: 손실 함수들입니다.
4. 최적화(Optimization)
- 클래스:
torch.optim.Optimizer
: 모든 최적화 알고리즘의 기본 클래스입니다.torch.optim.SGD
: 확률적 경사 하강법(SGD) 옵티마이저입니다.torch.optim.Adam
: Adam 옵티마이저입니다.
- 함수:
optimizer.step()
: 매개변수를 갱신합니다.optimizer.zero_grad()
: 기울기를 0으로 설정합니다.
5. 데이터 로딩 및 전처리(Data Loading and Preprocessing)
- 클래스:
torch.utils.data.Dataset
: 데이터셋을 나타내는 추상 클래스입니다.torch.utils.data.DataLoader
: 데이터셋을 배치 단위로 로딩하는 유틸리티입니다.torchvision.datasets
: 여러 유명한 데이터셋을 쉽게 로딩할 수 있는 클래스들입니다.torchvision.transforms
: 데이터 변환을 위한 다양한 유틸리티 클래스들입니다.
- 함수:
torch.utils.data.random_split(dataset, lengths)
: 데이터셋을 랜덤하게 분할합니다.
6. 분산 학습(Distributed Training)
- 클래스:
torch.nn.parallel.DistributedDataParallel
: 분산 데이터 병렬 학습을 위한 클래스입니다.
- 함수:
torch.distributed.init_process_group(backend, init_method, world_size, rank)
: 분산 학습 프로세스를 초기화합니다.torch.distributed.barrier()
: 모든 프로세스가 동기화될 때까지 기다립니다.
7. 양자화(Quantization)
- 클래스:
torch.quantization.QuantStub
,torch.quantization.DeQuantStub
: 양자화 및 비양자화 연산을 수행합니다.torch.quantization.FakeQuantize
: 학습 중에 양자화 효과를 시뮬레이션합니다.torch.quantization.QConfig
: 양자화 설정을 정의합니다.
- 함수:
torch.quantization.convert(model)
: 훈련된 모델을 양자화합니다.torch.quantization.prepare(model)
: 양자화를 위한 모델 준비 작업을 수행합니다.
8. 프로파일링(Profiling)
- 클래스:
torch.profiler.profile
: 코드 블록을 프로파일링하는 데 사용되는 컨텍스트 관리자입니다.
- 함수:
torch.profiler.tensorboard_trace_handler(log_dir)
: TensorBoard와 통합하여 프로파일링 결과를 시각화합니다.
9. JIT 컴파일 및 TorchScript
- 클래스:
torch.jit.ScriptModule
: 스크립트 모듈을 정의합니다.
- 함수:
torch.jit.script(func)
: Python 함수를 TorchScript로 변환합니다.torch.jit.trace(func, example_inputs)
: 주어진 입력을 사용하여 함수를 추적합니다.torch.jit.save(module, filename)
,torch.jit.load(filename)
: 모델을 저장하고 로드합니다.
10. 기타 유틸리티
- 함수:
torch.save(obj, f)
: 객체를 파일에 저장합니다.torch.load(f)
: 파일로부터 객체를 로드합니다.torch.cuda.is_available()
: CUDA 가용성을 확인합니다.torch.cuda.empty_cache()
: CUDA 캐시를 비웁니다.
반응형
'인공지능 프레임워크 > PyTorch 2.3' 카테고리의 다른 글
[pytorch] 프로젝트 구조 원칙 (0) | 2024.07.03 |
---|---|
[pytorch] 버전별 특징 (0) | 2024.07.03 |