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
no image
[VScode] venv 가상환경에서 pylint 사용하는 방법
서론 예전에는 workspace setting에서 해당 옵션들을 다음과 같이 설정하여 pylint를 사용하였지만, deprecated되거나 지원되지 않는 방식으로 변하였다. { "python.linting.pylintEnabled": true, "python.linting.enabled": true, "python.pythonPath": "가상환경의 Python 경로", "python.linting.pylintPath": "가상환경 내의 Pylint 경로", } 2023년 8월 vscode-pylint 이슈에 따르면 vscode에 pylint extension을 설치해서 사용하길 권장한다. 설정 방법 요약 생성했던 Venv 가상환경 활성화 해당 가상환경에서 pylint 설치 VScode에서 `ctrl +..
2024.03.01
no image
[VScode] Python Venv 경로 설정 옵션 (venvFolders, venvPath)
1. VScode 환경에서 Venv 경로 설정 옵션 venv 사용하여 가상환경을 생성한 뒤 가상환경의 인터프리터를 사용하려면 경로 설정을 해줘야한다. 이 때 경로 설정의 옵션은 총 2가지가 있으며 다음과 같다. python.venvFolders python.venvPath 1.1 python.venvFolders 해당 옵션은 사용자의 홈 디렉토리 아래에 있는 venv 가상 환경이 저장된 위치의 상대 경로들을 입력하여 사용할 수 있다. mac, linux에서는 홈 디렉토리가 눈에 띄지만 윈도우 환경에서는 생각하기 어려울 수 있다. 윈도우의 홈 디렉토리 보통 cmd, powershell을 실행하게 되면 처음 시작하는 경로가 윈도우의 홈 디렉토리이며, powershell이라면 cd ~를 통해 홈 디렉토리로 이..
2024.03.01
[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
no image
[Python] venv 사용법
venv 사용법윈도우 기준으로의 사용법만 작성되어 있습니다. 전제조건: python의 환경 변수 세팅을 완료한다. 그렇지 않다면, 파이썬 경로의 python을 호출하여도 된다.  venv 가상환경 생성형식python -m venv 가상환경저장경로\가상환경이름  사용 예제python -m venv C:\PythonVenv\VenvTeset  가상환경 활성화 [윈도우].\VenvTeset\Scripts\activate # 형식: [가상환경명]\Scripts\activate가상환경 활성화 [리눅스]source 가상환경이름/Scripts/activate 가상환경 비활성화deactivate  가상환경 활성화 및 비활성화  패키지 설치는 활성된 가상환경 속에서 pip를 통해 설치한다.    생성된 가상환경의 구조다..
2024.02.24
[Python] zip()
zip 함수 형태zip(*iterables, strict=False)여러 interable 오브젝트에 대해 병렬적으로 반복하여, 각 iterable오브젝트에서 나온 항목을 가진 tuple을 생성한다.  >>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):... print(item)...(1, 'sugar')(2, 'spice')(3, 'everything nice'좀 더 딱딱하게 설명하자면, zip()은 튜플에 대한 iterator를 반환하고, i 번째 튜플은 각 매개변수 iterable의 i 번째 요소를 포함한다. 고려해야 할 한 가지 사항은 zip()에 전달되는 iterable의 길이가 다를 수 있다.   3개 이상의 i..
2024.02.16
no image
[의료 영상] DICOM 전처리
정규화 전처리 코드base_img = dcm_file.pixel_arraymin_val = np.min(base_img)max_val = np.max(base_img)print(min_val)print(max_val)# normalize image / z = (x - min) / (max - min)copy_img = base_img.copy()numerator = copy_img - min_valdenominator = max_val - min_valz = numerator / denominatorz = (z * 255).astype(np.uint8)# 이미지 저장cv2.imwrite('base.png', base_img)cv2.imwrite('normalize.png', z)  pydicom을 통한 ..
2024.02.15
[Ubuntu server 22.04] 시간 변경
[Ubuntu server 22.04] 시간 변경timedatectl을 입력하여 Time zone의 시간대 확인user@server:~$ timedatectl Local time: Mon 2024-01-22 01:07:39 UTC Universal time: Mon 2024-01-22 01:07:39 UTC RTC time: Mon 2024-01-22 01:07:39 Time zone: Etc/UTC (UTC, +0000)System clock synchronized: yes NTP service: active RTC in local TZ: no  표준 시간대 리스트 ..
2024.01.22