전체 글 72

psycopg2 로 python 에서 postgresql 활용하는 법

psycopg2는 파이썬에서 Postgres DB를 연결할 때 사용하는 패키지 쿼리 실행, 트랜잭션 관리, 프로시저 호출, ORM 과 통합 등 다양하게 활용할 수 있음. 활용하는 법은 아래와 같음. 1. Package Install # Install pip install psycopg2 conda install psycopg2 2. connection setting import psycopg2 # postgresql server setting and connect host_name = '' # server ip port_num = '' # port db_name = '' user_ID = '' user_PW = '' 3. connection # Connection connection = psycopg2...

Python Code 2024.03.20

PGGAN, StyleGAN 설명, Torch 코드 구현

PGGAN(PixelGAN) PGGAN은 "Progressive Growing of GANs"의 약자로, 픽셀 수준의 이미지 생성에 중점을 둔 모델 PGGAN은 단계적으로 해상도를 키우면서 이미지를 생성하는 방식이며, 먼저 매우 작은 해상도의 이미지부터 시작하여 점진적으로 해상도를 키워가며 생성함. 각 단계에서는 이미지 생성에 사용되는 신경망의 크기와 깊이를 조절하며 작은 해상도의 이미지에서는 작은 신경망을 사용하고, 점진적으로 더 큰 신경망을 사용하여 더 높은 해상도의 이미지를 생성함. 이러한 접근 방식은 높은 해상도의 이미지를 생성하는 데 안정적으로 학습할 수 있음. Torch 코드 구현 import torch import torch.nn as nn class Generator(nn.Module): ..

Deep Learning 2024.02.19

Pytorch Pix2Pix 모델 구현

Pix2pix 모델은 A-B처럼 1:1 대응되는 paired한 이미지를 입력으로 해서 특정 입력데이터가 들어왔을 때, 어떤 이미지가 나올지를 예측하여 생성하는 생성 모델이다. 예를 들면, 건물 segmentation을 입력으로 했을 때, 건물을 생성하는 이미지가 출력되는 것이 가장 대표적이다. 기존에 활용되던 CGAN 모델과는 다르게 Pix2Pix 에서는 Noise vector 와 Class vector를 입력으로 받지 않고, 오직 이미지만을 입력으로 한다. Discriminator는 두 가지의 입력데이터를 받는데, Generator에 넣었던 원본 이미지와 짝지어졌던 실제이미지, 그리고 생성된 이미지를 각각 입력받는다. 그리고 discriminator는 pair를 비교해서 생성된 이미지인지, 혹은 진짜..

Deep Learning 2024.02.16

glob 사용법

python 에서 Path를 다룰 때 보통 os 모듈을 많이 사용했으나, Pytorch 에서 활용할 때 조금 불편한 부분이 있음. os 모듈보다 좀 더 편하고 많이 활용하는 패키지를 찾아보니 glob 이 있었고, 사실 알고 있었지만 os가 더 익숙해서 활용하지 않았음. 늦었지만 glob 활용법을 익혀두고 앞으로도 활용하지 않을듯 싶어 정리하고자 함. os 모듈과 거의 흡사하지만, 문자열과 형식을 더 다루기 쉬웠음. glob() 함수는 인자로 받은 패턴과 이름이 일치하는 모든 파일과 디렉터리의 리스트를 반환하며, 이 패턴을 그냥 *라고 주면 모든 파일과 폴더를 확인 가능함. from glob import glob glob('*.exe') # 현재 디렉터리의 .exe 파일 # output : ['python..

Python Code 2024.02.08

conda env 실행 시 오류 해결

anaconda 로 env 생성 후 activate 할 때, 아래와 같은 오류가 발생할 때가 있음. usage: conda [-h] [--no-plugins] [-V] COMMAND ... conda: error: argument COMMAND: invalid choice: 'source' (choose from 'clean', 'compare', 'config', 'create', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'build', 'content-trust', 'convert', 'debug', 'develop..

Deep Learning 2024.01.31

Pytorch training continue 코드

파이토치로 딥러닝 모델을 학습시키다가 환경적인 요인으로 학습이 중단될 경우, 처음부터 다시 학습시키면 시간과 자원 낭비가 심하게 된다. 따라서, 현재까지 학습되어 있는 모델을 지속적으로 저장해주고, 마지막 모델로부터 학습을 이어서 할 수 있는 코드 작성이 필요하다. Training 을 이어서 하기 위해 아래 함수로 모델 가중치와 optimizer load가 필요 def continue_training(model, model_path, optimizer, device): saved_checkpoint = torch.load(model_path, map_location=device) model.load_state_dict(saved_checkpoint['model']) optimizer.load_state_..

Python Code 2024.01.31

Medical Image SOTA 모델 (DUCK-NET) 리뷰 및 torch 코드 구현

원논문 링크 : https://arxiv.org/pdf/2311.02239v1.pdf 의료 이미지 segmentation 에서 가장 많이 활용되는 모델은 UNET으로, 주로 인코더에서 CNN 계열 모델을 붙이고 디코더에 UNET으로 De-convoluioning 하는 Up-sampling 과정을 통해 학습시킨다. UNET 후속 모델인 UNET++, UNET3+ 도 있으나, 동일한 데이터로 실험해본 결과 성능의 큰 차이는 없었다. (다만, 모델 사이즈가 조금 작아져서 light 해지는 결과는 있었음.) UNET은 2015년에 소개된 이후 약 10년간 많이 활용되었지만, 최근 제안되는 모델에 비해 성능이 많이 떨어지는 결과가 많았음. semantic segmantation SOTA 모델 성능비교 Datase..