[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 requirements Ubuntu Lunar 23.04 Ubuntu Kinetic 22.10 Ubuntu Jammy 22.04 (LTS) Ubuntu Focal 20.04 (LTS) 최신버전의 도커는 이와 같은 OS 버전을 요구합니다. Docker 설치 전 준비 단계 충돌 일어날 패키지 미리 삭제 for pkg in docker.io docker-doc ..
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
no image
[ML] Conditional GAN
Related Work 많은 수의 출력 카테고리를 수용할 수 있도록 확장하는 것은 어려운 문제며, 두 번째 문제는 입력과 출력의 일대일 매핑을 학습하는데 초점을 맞췄다는 것이다. 예를 들어 이미지 라벨링의 경우 주어진 이미지에 적절하게 적용될 수 있는 다양한 태그가 있을 수 있으며, 서로 다른 annoatator가 동일한 이미지를 설명하기 위해 서로 다른 용어를 사용할 수 있다. 첫 번째 문제를 해결하는 데 도움이 되는 한 가지 방법은 다른 모달리티의 추가 정보를 활용하는 것이다. 예를 들어, 자연어 말뭉치를 사용하여 기하학적 관계가 연관있는 label에 대한 vector representation을 학습하는 것이다. 이러한 space에서 예측할 때, 예측 오류가 발생해도 여전히 진실에 근접하는 경우가 ..
2023.12.18