목차
반응형
torchvision을 사용해서 이미지 변형하기
#이미지 가운데 부분을 자르는 것
torchvision.transforms.CenterCrop(size=(300, 300))(image)
#범위 안에서 brightness 등 값이 랜덤하게 변함
torchvision.transforms.ColorJitter(brightness=1, contrast=0, saturation=0, hue=0)(image)
#rgb를 gray scale로 변경
torchvision.transforms.Grayscale(num_output_channels=1)(image)
#이미지 크기를 늘림
torchvision.transforms.Pad(padding=(20, 20), fill=0, padding_mode='constant')(image)
#이미지 회전
torchvision.transforms.RandomAffine(degrees=90, translate=None,
scale=None, shear=None, resample=False, fillcolor=0)(image)
PyTorch에서 텐서보드 열기
import torchvision
from torch.utils.tensorboard import SummaryWriter
writer=SummaryWriter()
학습 코드에 해당 코드를 넣으면 된다.
if epoch==0:
grid=torchvision.utils.make_grid(data) #이미지를 타일처럼 분할
writer.add_image('images',grid,epoch)
writer.add_graph(model, data)
writer.add_scalar('Loss/train/',loss,epoch)
writer.add_scalar('Loss/test/',test_loss,epoch)
writer.add_scalar('Accuracy/test',accuracy,epoch)
Learning Rate Scheduler
from torch.optim.lr_scheduler import ReduceLROnPlateau
scheduler = ReduceLROnPlateau(optimizer, mode='max', factor=0.1, patience=0, verbose=True)
# Learning Rate Scheduler
scheduler.step(accuracy, epoch)
실행하면 다음과 같은 결과가 나온다.
모델 저장하고 로드하기 - 1
#모델 저장
torch.save(model.state_dict(), save_path)
#모델 로드
weight_dict = torch.load(save_path)
모델 저장하고 로드하기 - 2
#모델 저장
torch.save(model, save_path)
#모델 로드
model = torch.load(save_path)
pytorch.org/tutorials/beginner/saving_loading_models.html
반응형
'Study > 머신러닝' 카테고리의 다른 글
[2] 머신러닝 - 판다스 기초(1) (0) | 2021.05.11 |
---|---|
[1] 머신러닝 - numpy 기초 (0) | 2021.05.04 |
[tensorflow] 텐서플로우 콜백함수(Callbacks) (0) | 2021.01.31 |
[tensorflow] tf.data를 사용해 이미지 데이터 학습시키기 (0) | 2021.01.25 |
[tensorflow] dataframe 만들고 dataframe으로 학습시키기 (0) | 2021.01.25 |