Coding, Filming, and Nothing
article thumbnail
PyTorch 모델 특정 종류의 레이어를 바꾸기
개발새발/개발 셋업 2023. 3. 16. 11:54

API를 쓰다보면, activation function을 비롯해서 모델의 레이어를 바꾸고 싶은 일이 종종 생기는데, nn.Sequantial()이 다중으로 겹쳐진 경우 구글링 해서 나오는 코드들은 대부분 동작을 안 한다. (예시 isinstance()를 한두번 정도 묻는 것, 혹은 setattr로 변경을 시도하는 것) 코드 아래의 코드는 재귀함수 형태로, 바꾸고 싶은 instance를 target에 전달하고, 바꾸고 싶은 instance를 source에 전달을 한다. 이러면 nn.Sequantial에 얼마나 감싸져있던 재귀형태로 모두 진행하여 모델 레이어를 변경할 수 있다. def replace_module(modules:nn.Module, target, source): for name, child in..

article thumbnail
PyTorch Lightning 소개 및 설명
개발새발/개발 셋업 2023. 2. 13. 21:31

본 게시글에 작성되는 내용은 PyTorch Lightning 공식 사이트에 있는 Tutorial과 API Docs를 참고하여 작성하였습니다. 그 외에 블로그에 작성된 몇 개의 예제들을 더 참고했는데, PyTorch-Lightning이 추구하는 '효과적인 추상화'를 위해서는 이러한 방향으로 사용하면 더 좋을 수 있겠다 싶어서 글로 공부했던 내용을 글로 정리했습니다. PyTorch Lightning 소개 PyTorch Llightning은 PyTroch에 대한 High-level (abstract) 인터페이스를 제공하는 오픈소스 라이브러리 입니다. PyTorch 하나만으로도 숙달되면 부족함은 전혀 없지만, 모델이 커질 수록 그리고 다양하고 고도화된 기술들을 적용하면서 실험을 할 경우 코드가 너무 복잡해집니다..

article thumbnail
[Docker] 서버 Docker, miniconda 개발 환경 세팅
개발새발/개발 셋업 2023. 1. 18. 21:44

이전에 있던 연구실은 그냥 linux 서버였고 개인이 알아서 개인 계정에서 콘다 환경을 만들어서 사용했었는데, 지금 연구하는 곳은 도커를 사용한다. 도커 레이어가 한 장 더 추가된 것만 다를테니 콘다를 쓸 도커로 만들어야겠다 싶어서 그 김에 기록한다. *이 글에서 사용한 계정이 sudo 계정이여서, 명령어에 딱히 sudo를 붙이지 않았는데 접속한 계정에 따라서 sudo docker ... 식으로 사용해야 할 수 있다. 도커 기여엉 Container: Process, a running instance of an application Image: Program, a static file that defines the behavior of the container 1. 도커 허브에서 사용할 miniconda3..

article thumbnail
[Conda] 컴퓨터비전을 위한 토치환경 셋업
개발새발/개발 셋업 2023. 1. 18. 21:39

의료영상 처리, 컴퓨터 비전을 위한 모델을 학습시키고 다룰 때를 위해 구성 해놓은 가상환경 설정 명령어 모음입니다. 주로 medical image segmentation, U-Net based models, ViT models, Albumentation 등을 다루는데 사용되었습니다. 최초 'conda' 환경 세팅 명령어 conda upgrade conda —all -y conda update -n base conda -y conda update —all conda update -n base -c defaults conda -y python -m pip install —upgrade pip 'Vision' 환경 세팅 명령어 conda create -n Vision -y conda update conda -..

article thumbnail
Pytorch Implementation of UNet 3+: A Full-Scale Connected UNet for Medical Image Segmentation

Info **UNet 3+: A Full-Scale Connected UNet for Medical Image Segmentation** *Huimin Huang, Lanfen Lin, Ruofeng Tong, Hongjie Hu, Qiaowei Zhang, Yutaro Iwamoto, Xianhua Han, Yen-Wei Chen, Jian Wu* [[paper](https://arxiv.org/abs/2004.08790)] ICASSP(IEEE) 2020 - U-Net++와 마찬가지로, U-Net3+ 모델은 Skip connection의 개선을 목표로 두고 설계된 모델이다. 본문에서 저자는 U-Net의 skip connection과 U-Net++의 Skip Pathways (skip connectio..

article thumbnail
Attention U-Net PyTorch implementation, Attention U-Net: Learning Where to Look for the Pancreas

info **Attention U-Net: Learning Where to Look for the Pancreas** *Ozan Oktay, et al.* [[paper](https://arxiv.org/abs/1804.03999)] MIDL 2018 - Attention U-Net 파이토치 구현입니다. 논문을 보고 작성하는데 Gating Signal $g$ 에서 막혀서 시간이 좀 걸렸네요. Attention U-Net Encoder, Decoder, 그리고 AttentionGate (softmax, addtive attention)을 구현했습니다. *Deep supervision은 본문 연구에서 encoder output을 포함하여 stage_outputs들을 모두 segementation map si..

article thumbnail
V-Net PyTorch 구현, V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation

info. **V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation** *Fausto Milletari, Nassir Navab, Seyed-Ahmad Ahmadi* [[paper](https://arxiv.org/abs/1606.04797)] 3DV 2016 V-Net 논문 읽고 구현을 해본 파이토치 버전 코드입니다.Encoder (compression path), Decoder (decompression path), 그리고 dice loss를 구현했습니다. 논문 본문에 있는 모델 설명을 참조했습니다. V-Net 장점 요약 3D 의료 이미지의 효과적인 Segmentation: V-Net 네트워크 아키텍쳐는..

article thumbnail
U-Net PyTorch Implementation, U-Net: Convolutional Networks for Biomedical Image Segmentation

Info **U-Net: Convolutional Networks for Biomedical Image Segmentation** *Olaf Ronneberger, Philipp Fischer, Thomas Brox* [[arXiv]]: https://arxiv.org/abs/1505.04597 MICCAI 2015 - 원래 U-Net에서는 Convolution 연산을 수행할 때 패딩을 넣지 않아서 이미지의 크기가 점진적으로 줄어들지만, 현 시점의 구현에서는 입력 이미지의 크기를 줄일 필요가 없습니다. (오히려 잠재적으로 여러방면에서 손해) 하지만 해당 본문에서는 실제 U-Net 모델을 그대로 재현했습니다. U-Net 특징 매개변수의 효율적인 사용: U-Net 아키텍처는 건너뛰기 연결을 사용하여 인코더와..