[DICOM] 세그멘테이션 결과 Mask를 3차원으로 저장하기
.dcm 확장자로 Segmentation 3D mask를 저장하기# 3D mask 저장volume_mask = np.stack(patient_mask, axis=0)print("volume_mask.shape: ", volume_mask.shape)mask_dicom.NumberOfFrames = 192mask_dicom.Rows, mask_dicom.Columns = volume_mask.shape[1], volume_mask.shape[2]mask_dicom.PixelData = volume_mask.astype(np.uint16).tobytes()# DCIOM standard로 파일 메타 정보 설정mask_dicom.file_meta.TransferSyntaxUID = ExplicitVRLittle..
2024.05.03
[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
[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
[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
[python] set의 shet한 string auto concatenation
코드test_set = {"1", "2", "3" "4", "5"}print("test_set: ", test_set) 상황test_set: {'1', '5', '34', '2'} 3과 4사이에 ',' 콤마가 없는데 컴파일 에러가 안나고 지알아서 concat해버린다. 미친놈임 python에서 문자열 사이에 콤마가 없으면 자동 concat이 된다.. 오타에 주의하도록 하자..  https://stackoverflow.com/questions/18842779/string-concatenation-without-operator
2024.01.14
[Docker, Ubuntu 22.04] 도커 설치부터 Nvidia-toolkit까지
딥러닝 서버를 만들기 위한 도커 설정 과정Ubuntu server를 설치한다.Docker를 설치한다Nvidia driver를 설치한다Nvidia-container tooklit을 설치한다. 도커 설치에 참고한 공식문서 링크입니다. https://docs.docker.com/engine/install/ubuntu/  Docker 설치과정 설명OS requirementsUbuntu Lunar 23.04Ubuntu Kinetic 22.10Ubuntu Jammy 22.04 (LTS)Ubuntu Focal 20.04 (LTS)최신버전의 도커는 이와 같은 OS 버전을 요구합니다.  Docker 설치 전 준비 단계충돌 일어날 패키지 미리 삭제for pkg in docker.io docker-doc docker-com..
2024.01.05
no image
[ML] GAN에서 BCE loss를 사용하는 이유
Why use Binary Cross Entropy for Generator in Adversarial Networks I'm trying to work with General Adversarial Networks and there's something I'm seeing everywhere but can't explain why... the GANs are usually constructed from a Generator (which usually generates... stats.stackexchange.com 해당 글 내용 번역 왜 Generator에서 BCE loss를 사용할까 판별기의 손실 함수는 이미지의 진짜, 가짜 여부를 확인하기 위해 BCE를 사용하는 것은 이해할 수 있지만 생성기에서 BC..
2023.12.19