no image
[Python, Docker] Docker container에서 pip로 패키지 설치가 안될 때
발생오류error when use pipWARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out.(read timeout=15)")': /simple/colorama/우선 나의 환경은 Docker container 내부에서 발생한 상황이며, Ubuntu 18.04 OS를 사용하는 컨테이너이다. 만약, 같은 환경이 아니라 Windows(Linux에서도 먹히는 듯)와 같은 환경은 IPv6의 비활성화 또는 151.101..
2024.06.25
no image
[Pytorch] torchview를 사용한 모델 plot 시각화 (ubuntu)
Torchview를 사용한 모델 시각화다음 공식 깃허브를 참고하여 ubuntu에서 사용할 torchview를 세팅하였다. 설치설치 기준은 데비안 기반 환경이며. 여기서는 우분투를 사용했습니다. 윈도우에 설치하는 과정들은 다른 블로그를 참조해야할 것 같습니다. 윈도우 설치과정을 조금 살펴보았을 때 graphviz 패키지를 설치할 때 해당 문서에 따르면 graphviz-2.38.msi와 같은 파일을 통해 설치하는 것을 권장하는 것처럼 보였습니다. 이는 환경변수 설정때문 같습니다. 아마 graphviz만 제대로 설치된다면 윈도우에서 사용하는 것도 까다롭지 않을 수도 있을 것 같긴한데, 사용하지 않아서 잘모르며 우분투환경에서의 설치만 다룹니다. graphviz 설치apt-get install graphviz위처..
2024.05.29
[Python] yaml 사용 방법
1. 라이브러리 설치pip install PyYAML  2. 사용법PyYAML을 설치후 import하여 아래와 같이 사용할 수 있다. 반환된 data 변수는 dictionary 타입을 가진다.import yamlyaml_path = "./settings.yaml"with open(yaml_path, "r") as f: data = yaml.safe_load(f)batch_size = data['hyperparameters']['BatchSize']print(f"batch_size: {batch_size}")>> 출력batch_size: 32  2.1 dictionary를 argparse.Namespace()를 사용해서 편하게 사용하기Namespace는 argparse 내부에 있는 클래스로 attri..
2024.05.05
[Python] sys.exc_info() 사용법과 이해
sys.exc_info()sys.exc_info()는 현재 스레드와 스택프레임에 해당하는 발생한 예외에 대한 정보를 반환한다. 반환값은 (type, value, traceback)으로 구성된 튜플이며 각 값의 의미는 정리하면 이와 같다.처리중인 exception typeexception type의 instance예외가 원래 발생한 지점에서 호출 스택을 캡슐화하는 traceback object이다. 다른 블로그를 참고하면 value에서는 에러 메시지를 얻을 수 있다고 한다.import sys # 예외를 발생시키는 함수 정의def raise_exception(): x = 1 / 0 try: raise_exception()except: # 예외 정보 출력 exc_type, exc_valu..
2024.05.02
no image
[Python] traceback 사용법
traceback 모듈이란 위 예시 이미지처럼 traceback의 출력 결과는 가장 마지막에 출력된 것이 가장 최근에 호출된 함수이다. 함수가 호출 될 때 마다 각 정보를 자료구조에 담아두고 함수의 호출 순서를 따라 차례대로 출력한다.  파이썬 프로그램의 스택 트레이스를 추출과 포매팅 그리고 프린팅하는 표준 인터페이스를 제공한다. 이 모듈은 traceback 객체를 사용하는데 sys.exc_info() 함수에서 반환값에서 얻거나 잡힌 예외의 __traceback__ 어트리뷰트로 접근할 수 있다. traceback 객체에는 tb_next, tb_frame, tb_lineno 등 다양한 어트리뷰트를 가지고 있으니 필요시 공식문서를 확인할 필요가 있다. ▶ sys.exc_info() 설명 링크 import s..
2024.05.02
no image
[Matplotlib] 1로 채워진 이미지의 출력
Matplotlib를 사용해서 이미지를 출력해려고 다음과 같이 이미지를 출력하였다.x = np.empty(shape=(800,800), dtype=np.uint8)x.fill(255)plt.imshow(x, cmap='gray') 그러나 fill함수를 사용하여 어떤 값을 넣어도 검은색 이미지만 출력될 뿐 다른 것이 출력되진 않는다. vmin, vmax를 설정하여 이미지를 출력할 수 있다. vmin 및 vmax는 컬러맵 색상 제한에 매핑되는 값을 고정하여 이미지의 색상 배율을 설정한다. vmin 또는 vmax가 None인 경우 해당 제한은 배열 최소/최대 값에서 결정된다.  https://stackoverflow.com/questions/38340813/matplotlib-produces-a-black-i..
2024.04.28
RuntimeError: CUDA error: device-side assert triggered
RuntimeError: CUDA error: device-side assert triggered해당 오류는 많은 이유에서 발생할 수 있지만, 나의 경우에서는 값을 0으로 나누려는 과정에서 에러가 발생했고, 그리하여 다음과 같은 에러들을 만나게 되었다. RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.For debugging consider passing CUDA_LAUNCH_BLOCKING=1./opt/conda/conda-bld/pytorch_1..
2024.04.05
Albumentation Color jitter 사용 오류
Albumentation에서 ColorJitter를 적용시키려 다음과 같이 세팅한 후 실행을 하였더니 오류가 발생하였다.transform = A.Compose([ # A.HorizontalFlip(), # A.VerticalFlip(), # A.Rotate(limit=(-180, 180), p=0.5), A.ColorJitter(brightness=0,contrast=(1,5),saturation=0,hue=0) ], is_check_shapes=False)  File "/opt/conda/lib/python3.10/site-packages/albumentations/augmentations/functional.py", line 1223, in adjust_contrast_t..
2024.04.05
no image
[Pytorch] 모델 저장 오류
분명 모델을 저장하는 과정에서는 문제가 없었는데, 모델을 불러오면 문제가 생겼다. strict옵션을 넣고 강제로 모델을 load할 수 있긴 하지만, 시드값을 맞추어도 실험의 재현이 되지 않았다.  해당 사진을 보면 저장한 모델의 값을 불러올 때 Missing key에러가 발생하는데 Unexpected key가 발생한 내역을 살펴보면 모든 key앞에 module가 붙어있다. 다음과 같이 모델의 state_dict()를 저장할 때, module.state_dict()를 저장하면 됐다.def save_model(net, save_path): # torch.save(net.state_dict(), save_path) torch.save(net.module.state_dict(), save_path) ..
2024.03.07
[Python] 리눅스 환경에서 Maplotlib에서 한글폰트 사용하기
Maplotlib에서 한글폰트 사용하기sudo apt-get install fonts-nanum* # 폰트 설치sudo fc-cache -fv # 캐시 제거fc-list | grep nanum # 폰트 설치 확인rm -rf ~/.cache/matplotlib/* # matplotlib 캐시 제거 설치된 폰트 확인/usr/share/fonts/truetype/nanum/NanumSquareRoundB.ttf: NanumSquareRound,나눔스퀘어라운드,NanumSquareRound Bold,나눔스퀘어라운드 Bold:style=Bold,Regular/usr/share/fonts/truetype/nanum/NanumSquareRoundR.ttf: NanumSquareRound,나눔스퀘어라운드,NanumSq..
2024.02.28
[Pytorch] Generator
Pytorch 공식문서에서의 설명 CLASStorch.Generator(device='cpu') 의사 난수를 생성하는 알고리즘의 상태를 관리하는 Generator의 객체를 생성하고 반환한다. 많은 In-place random sampling 함수에서 keyword argumend로 사용된다. In-place random sampling 텐서에 정의된 random sampling 함수 torch.Tensor.bernoulli_() - in-place version of torch.bernoulli() torch.Tensor.cauchy_() - numbers drawn from the Cauchy distribution torch.Tensor.exponential_() - numbers drawn from..
2024.02.27
[Pytorch] Randomness 제어
Randomness 제어랜덤성 제어를 위해 필요한 것- 초기 가중치 고정- augmentation에 사용되는 random값 고정 def set_seed(seed=990912): torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False np.random.seed(seed) random.seed(seed)  torch.manual_seed랜덤한 숫자를 생성하기 위한 시드를 고정한다. return은 torch.Generator 오브젝트..
2024.02.27