본문 바로가기

Python/PyTorch

(13)
[Pytorch] .requires_grad(), torch.no_grad(), model.eval() .requires_grad() 신경망에서, 변화도를 계산하지 않는 매개변수를 일반적으로 고정된 매개변수(frozen parameter)라고 부른다. 이러한 매개변수의 변화도가 필요하지 않다는 것을 미리 알고 있으면, 신경망 모델의 일부를 "고정(freeze)"하는 것이 유용하다. (이렇게 하면 autograd 연산량을 줄임으로써 성능상의 이득을 제공한다.) 미세조정(finetuning)을 하는 과정에서, 새로운 정답(label)을 예측할 수 있도록 모델의 대부분을 고정한 뒤 일반적으로 분류 계층(classifier layer)만 변경한다. torch.no_grad() gradient 계산을 비활성화하는 context manager이다. no_grad()는 Tensor.backward()를 부르지 않아도 ..
Custom Dataset 생성 Dataset의 기본 구성 요소from torch.utils.data import Dataset # torch.utils.data의 Dataset 라이브러리 상속class CustomDataset(Dataset): def __init__(self): pass def __getitem__(self, index): pass def __len__(self): pass __init__ 메서드데이터의 위치나 파일명과 같은 초기화 작업을 위해 동작한다. 일반적으로 CSV파일이나 XML파일과 같은 데이터를 이때 불러온다. 이렇게 함으로써 모든 데이터를 메모리에 로드하지 않고 효율적으로 사용할 수 있다. 여기에 이미지를 처리할 transforms들을 Compos..
[부스트코스] [파이토치로 시작하는 딥러닝 기초] 딥러닝을 학습시키는 단계 이 글은 파이토치로 시작하는 딥러닝 기초를 수강하고 작성하는 글입니다. 1. 라이브러리 가져오기 (torch, torchvision, matplotlib같은 것들) 2. GPU 사용 설정하고 random value를 위한 seed설정! 3. 학습에 사용되는 parameter 설정! ( learning_rate, training_epochs, batch_size, etc) 4. 데이터셋을 가져오고 (학습에 쓰기 편하게) loader만들기 - 데이터 processing 5. 학습 모델 만들기 (class CNN(torch.nn.Module)) - layer종류, 개수 및 뉴런 개수 설정 6. Loss function (Criterion)을 선택하고 최적화 도구 선택(optimizer) 7. 모델 학습 및 l..
[Pytorch] torch has no "from_numpy" member #pylint: disableE1101 과 #pylint: enable=E1101 사이에 torch.from_numpy() 코드를 작성하면 된다. # pylint: disable=E1101 tensor = torch.from_numpy(np_array) # pylint: enable=E1101
[Pytorch] Tensor 텐서(tensor)는 배열(array)이나 행렬(matrix)과 매우 유사한 특수한 자료구조이다. PyTorch에서는 텐서를 사용하여 모델의 입력(input)과 출력(output), 그리고 모델의 매개변수들을 부호화(encode)한다. 텐서는 GPU나 다른 하드웨어 가속기에서 실행할 수 있다는 점만 제외하면 NumPy 의 ndarray와 유사하다. 실제로 텐서와 NumPy 배열(array)은 종종 동일한 내부(underly) 메모리를 공유할 수 있어 데이터를 복사할 필요가 없다. (NumPy 변환(Bridge) 참고) 텐서는 또한 자동 미분(automatic differentiation)에 최적화되어 있다. 텐서(tensor) 자료형 데이터를 만드는 방법 텐서 자료형 데이터를 만드는 방법은 3가지가 있다..