일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ssh
- HookNet
- cs231n
- 프로그래머스
- docker attach
- 히비스서커스
- logistic regression
- Decision Boundary
- Pull Request
- Multi-Resolution Networks for Semantic Segmentation in Whole Slide Images
- aiffel exploration
- cocre
- 코크리
- 사회조사분석사2급
- numpy
- WSSS
- 티스토리챌린지
- vscode
- docker
- IVI
- 기초확률론
- GIT
- airflow
- CellPin
- 도커
- AIFFEL
- docker exec
- 오블완
- 백신후원
- Jupyter notebook
- Today
- Total
목록Programming/Python (42)
히비스서커스의 블로그
상황 아래의 대략적인 코드와 같이 from pytorch_lightning.loggers import WandbLogger from pytorch_lightning import Trainer import wandb wandb_logger = WandbLogger() trainer = Trainer( accelerator = 'gpu', devices = 2, logger=wandb_logger ) (...) val = wandb.run.summary('val_acc') 학습 프레임워크로 pytorch lightning를 사용하고 log를 받아 시각화하기 위해 wandb_logger로 받았다. 그 후 wandb에 단일 값으로 저장된 'val_acc'에 해당하는 값을 불러오려는데 'NoneType' obje..
상황 classification model 학습을 위해 pretrained 모델을 사용하기 위해 output을 바꿔주려는 중 다음과 같은 에러를 마주쳤다. 코드 # model의 코드는 https://github.com/Cadene/pretrained-models.pytorch/blob/master/pretrainedmodels/models/senet.py 참조 from model import se_resnext101_32x4d import torch.nn as nn CLASS = 4 model = se_resnext101_32x4d(pretrained='imagenet') model.last_linear = nn.Linear(in_features=2048, out_features=CLASS) 에러메시지 ..
상황 1. model.train()인 상태로 dataset을 학습시키고 2. model 내에는 batch norm layer가 존재할 경우 3. dataset을 batch size만큼씩 나눌 때 가끔씩 나머지가 1인 경우가 존재하는데 이때 발생할 수 있는 에러이다. (ex. dataset의 수가 65개인데 batch size를 64인 경우). 에러 ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 256, 1, 1]) 원인 batch norm layer의 계산식에 batch chanel의 크기가 1보다 크다고 가정한 수식이 존재하는 듯하다. 따라서, batch size가 1일 경우에는..
torch framework로 model을 train 후 저장 및 불러오는 방법은 크게 두 가지가 있다. 1) torch.save(model.state_dict(), model_path) 이 방법은 모델의 가중치만 저장하는 방법이다. 모델 train 후 evaluation 모드 전환 후 가중치만 저장 import torch.nn as nn import torchvision import torch # 예시 모델 model = torchvision.models.resnet18() # GPU 2대를 사용한다고 가정 후 dataparallel을 통한 병렬처리 device = "cuda" if torch.cuda.is_available() else "cpu" model.to(device) model = nn.Da..
TTA(Test Time Augmentation)란? TTA이란 Train 과정이 아닌 Test (Inference) 과정에서 Augmentation을 적용하여 나온 결과들에 대해 대표값 (대체로 평균)을 도출하여 결과값이 더욱 Robust하게 만드는 기법을 말한다. segmentation, classification, super-resolution 등과 같은 Computer Vision 문제를 해결하는데 사용된다. 대체로 TTA를 적용하였을 경우 더 결과가 좋아지는 경우가 많아 Kaggle과 같은 경진대회에서도 많이 사용된다. TTA 적용하기 Pytorch를 Framework로 사용하여 Segmentation Task를 진행한다고 하였을 때 TTA를 적용하는 코드를 간략하게 정리해보았다. 이때, 대표적..
상황 직접 만든 모델을 학습 후 torch.save(model, path) 로 저장한 후 torch.load(weight) 을 하는 도중 다음과 같은 에러가 발생하였다. ModuleNotFoundError: No module named 'models' 원인 라이브러리를 통해 model을 학습 후 저장한 것이 아닌 직접 만든 모델이나 git clone을 통해 받은 모델을 학습시킨 후 torch.save()를 통해 weight을 저장한 후 model이 담겨있는 py파일 경로가 아닌 다른 경로에서 load하는 경우 발생하는 에러이다. 해결 import sys sys.path.insert(0, yourmodelpath) 위의 코드와 같이 sys.path에 모델의 파일이 담긴 경로를 추가해주어 해결할 수 있다. ..
torch로 multi class semantic segmentation model을 학습 중이다. 원래는 DiceLoss를 사용하여 Train을 하다가 CrossEntropyLoss에 Class Weight을 주어 다시 Train하려는데 다음과 같은 에러가 발생하였다. RuntimeError: Expected object of scalar type Long but got scalar type Float when using CrossEntropyLoss 이를 해결방법을 찾던 중 loss를 구하는 부분에서 y부분 (ground truth 부분)에 y.to(dtype=torch.long) 을 해주어 해결이 가능하다고 하여 적용하였으나 바로 다음과 같은 에러를 마주쳤다. RuntimeError: 1only b..
optuna를 통해 최적의 하이퍼 파라미터를 찾는 코드를 작성 후 실행하다가 에러를 마주하였다. 먼저, 실행하였던 코드들을 간략하게 정리해보겠다. 실행하고 있던 코드가 나와있는 원문 https://towardsdatascience.com/https-medium-com-perlitz-hyper-parameter-optimization-with-optuna-1c32785e7df A 5 min guide to hyper-parameter optimization with Optuna Finding the best hyper-parameters for your model is now a breeze. towardsdatascience.com 라이브러리를 불러오고 dataloader 함수를 작성한다. from __..