DIRTY MNIST
월간 데이콘 제 2회 컴퓨터 비전 학습 경진대회 데이터셋으로 간단한 뉴럴 네트워크를 훈련하고 추론하는 코드입니다. 월간 데이콘 제 2회 컴퓨터 비전 학습 경진대회 Dataset Link : https://dacon.io/competitions/official/235697/overview/description
- class hnvlib.dirty_mnist.DirtyMnistDataset(dir: os.PathLike, image_ids: os.PathLike, transforms: Sequence[Callable])
Dirty-MNIST 데이터셋 사용자 정의 클래스를 정의합니다.
- class hnvlib.dirty_mnist.DirtyMnistModel
Dirty-MNIST 데이터를 훈련할 모델을 정의합니다. 모델은 torchvision에서 제공하는 ResNet-50을 지원합니다. Model Link : https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py
- forward(x: torch.Tensor) torch.Tensor
피드 포워드(순전파)를 진행하는 함수입니다.
- 매개변수
x (Tensor) – 입력 이미지
- 반환
입력 이미지에 대한 예측값
- 반환 형식
Tensor
- class hnvlib.dirty_mnist.DirtyMnistModule
모델과 학습/추론 코드가 포함된 파이토치 라이트닝 모듈입니다.
- configure_optimizers() torch.optim.optimizer.Optimizer
옵티마이저를 정의합니다. Adam Paper Link : https://arxiv.org/abs/1412.6980
- 반환
파이토치 옵티마이저
- 반환 형식
torch.optim.Optimizer
- forward(x: torch.Tensor) torch.Tensor
피드 포워딩
- 매개변수
x (Tensor) – 입력 이미지
- 반환
입력 이미지에 대한 예측값
- 반환 형식
Tensor
- hnvlib.dirty_mnist.predict(test_data: torch.utils.data.dataset.Dataset, model: torch.nn.modules.module.Module) None
학습한 뉴럴 네트워크로 Dirty-MNIST 데이터셋을 분류합니다.
- 매개변수
test_data (Dataset) – 추론에 사용되는 데이터셋
model (nn.Module) – 추론에 사용되는 모델
- hnvlib.dirty_mnist.run_pytorch_lightning(batch_size: int, epochs: int) None
학습/추론 파이토치 라이트닝 파이프라인입니다.
- hnvlib.dirty_mnist.split_dataset(path: os.PathLike, split_rate: float = 0.2) None
Dirty-MNIST 데이터셋을 비율에 맞춰 train / test로 나눕니다.
- 매개변수
path (os.PathLike) – Dirty-MNIST 데이터셋 경로
split_rate (float) – train과 test로 데이터 나누는 비율
- hnvlib.dirty_mnist.test(dataloader: torch.utils.data.dataloader.DataLoader, device: str, model: torch.nn.modules.module.Module, loss_fn: torch.nn.modules.module.Module) None
Dirty-MNIST 데이터셋으로 뉴럴 네트워크의 성능을 테스트합니다.
- 매개변수
dataloader (DataLoader) – 파이토치 데이터로더
device (str) – 훈련에 사용되는 장치
model (nn.Module) – 훈련에 사용되는 모델
loss_fn (nn.Module) – 훈련에 사용되는 오차 함수
- hnvlib.dirty_mnist.train(dataloader: torch.utils.data.dataloader.DataLoader, device: str, model: torch.nn.modules.module.Module, loss_fn: torch.nn.modules.module.Module, optimizer: torch.optim.optimizer.Optimizer) None
Dirty-MNIST 데이터셋으로 뉴럴 네트워크를 훈련합니다.
- 매개변수
dataloader (DataLoader) – 파이토치 데이터로더
device (str) – 훈련에 사용되는 장치
model (nn.Module) – 훈련에 사용되는 모델
loss_fn (nn.Module) – 훈련에 사용되는 오차 함수
optimizer (torch.optim.Optimizer) – 훈련에 사용되는 옵티마이저