본문 바로가기

전체 글21

[ERROR] CUDA error: CUBLAS_STATUS_INVALID_VALUE 해결법 논문 재구현을 하면서, 아래와 같은 오류가 떴다. RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling `cublasGemmEx( handle, opa, opb, m, n, k, &falpha, a, CUDA_R_16F, lda, b, CUDA_R_16F, ldb, &fbeta, c, CUDA_R_16F, ldc, CUDA_R_32F, CUBLAS_GEMM_DFALT_TENSOR_OP)` CUDA를 일일히 다 까보기 힘들어 그냥 밀어 버릴까 했는데, 혹시나 서버에 문제가 생길까 고민을 많이 했다. 그러다 연구실 동료가 torch 버전을 확인해보자 제안했다. 논문의 코드는 1.6이상이면 된다고 했지만, 내가 사용하던 버전은 1.13였고 버전.. 2023. 4. 26.
[논문리뷰]DISCo: Deep learning, Instance Segmentation, and Correlations for cellsegmentation in calcium imaging 이번 포스트에서는 Calcium Imaging과 관련된 segmention을 다룬 DISCo에 대해 공부한 것을 정리해보고자 한다. Abstract: 칼슘 이미징은 신경생리학에서 중요한 도구 중 하나이다. 이를 통해 단일 세포 해상도에서 수백 개의 세포들의 신경적 활동을 병렬적으로 관찰할 수 있기 때문이다. 칼슘 이미징을 통해 얻은 데이터를 사용하기 위해 녹화된 영상으로부터 개별 세포들의 활동을 추출해야 한다. 이를 위해 이 논문에서는 DISCo를 제안한다. DISCo는 픽셀 간의 상관관계를 계산하여 기록의 시간 정보를 계산적으로 효율적인 방식으로 사용하고 이를 형상 기반 정보와 결합하여 활성 및 비활성 셀을 식별한다. 처음에는 두 개의 픽셀이 하나의 세포에 속하는지 예측하는 것을 학습한다. 이를 통해 .. 2022. 11. 20.
[파이토치] 모델 저장 및 불러오기 이번 포스트에서는 학습한 모델을 저장하는 방법과 저장된 모델을 불러오는 방법에 대해 다뤄보려고 한다. 일반적으로 모델을 학습하는데 많은 시간이 걸린다. 그렇기 때문에 코드 파일을 매번 실행하는 것은 굉장히 비효율적이다. 그렇기 때문에 학습이 끝난 모델을 저장하고 나중에 사용할 때 그 모델을 불러와서 사용하는 것이 시간과 자원 면에서 효율성을 증대할 수 있다. 모델 저장과 불러오기 먼저 실습을 위해 필요한 기본적인 패키지를 import 한다. import torch import torchvision.models as models 모델을 저장하고 불러오는 방법은 크게 두 가지로 나뉜다. 모델의 가중치를 저장하고 불러오는 방식 저장하기 모델이 학습한 파라미터들은 state_dict에 저장된다. 그리고 이 st.. 2022. 10. 7.
[파이토치]최적화 이번 포스트에선 모델의 파라미터들을 최적화하는법에 대해 알아보고자 한다. 모델을 학습하는 과정은 주어진 epoch 수만큼 반복을 하며 출력값을 추정하고 loss 값을 계산한다. 그리고 경사하강법을 통해 모델이 최적의 성능을 내도록 파라미터를 최적화한다. 1. 신경망 구성하기 파라미터를 최적화할 기초적인 수준의 신경망을 만든다. import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets from torchvision.transforms import ToTensor, Lambda training_data = datasets.FashionMNIST( root="data", tra.. 2022. 10. 6.
[파이토치]자동미분_AUTOGRAD 이번 포스트에서는 파이토치가 제공하는 AUTOGRAD에 대해서 알아보자. AUTOGRAD는 신경망 학습에서 아주 중요한 부분 중 하나이다. 그렇기 때문에 신경망을 구성에 대한 사전 지식이 부족하다면, 이전의 신경망 구성에 대한 포스트를 읽고오면 좋을것 같다. [파이토치]신경망 구성 이번 포스트에서는 본격적으로 우리가 흔히 모델로 알고 있는 신경망을 구축하는것을 알아보자. 아직 텐서변환에 대해 공부하지 않은 분들은 이전의 포스트를 먼저 보고 오면 도움이 될것이라 dream-be.tistory.com AUTOGRAD AUTOGRAD는 왜 신경망을 학습하는데 중요할까? 신경망은 입력에서 출력까지 데이터가 흘러가면서 가중치와 편향의 영향을 받는다. 그리고 나서 손실함수를 계산하고 backpropagation(역.. 2022. 9. 30.
[파이토치]신경망 구성 이번 포스트에서는 본격적으로 우리가 흔히 모델로 알고 있는 신경망을 구축하는것을 알아보자. 아직 텐서변환에 대해 공부하지 않은 분들은 이전의 포스트를 먼저 보고 오면 도움이 될것이라고 생각한다. [파이토치] Transform 이번 포스트는 파이토치에서 학습을 위해 데이터를 처리의 한 부분인 Transform을 하는지 공부해 보자. Transform은 왜 필요하고 어떻게 할까? 머신러닝과 딥러닝에서 데이터를 학습에 용이하게 활용 dream-be.tistory.com 신경망은 데이터의 연산을 담당하는 레이어와 모듈로 이루어져 있다. torch.nn은 신경망을 구축하는데 필요한 모든 구성요소들을 제공한다. 파이토치가 제공하믄 모든 모듈은 nn.Module의 하위 클래스이다. 신경망은 그 자체가 다른 레이어와 .. 2022. 9. 29.
[논문리뷰]Conditional Generative Adversarial Nets(CGAN) 이번 포스트에는 조건부 GAN 인 CGAN에 대해 공부해보자. 파이토치로 구현한 코드는 아래의 링크로 들어가보면 참고할 수 있다. https://github.com/BySanghyeon/AI_Paper_Review/blob/main/GAN/CGAN.ipynb Abstract 이 연구는 기존의 GAN의 조건부 버전인 CGAN을 소개한다. 이는 discriminator와 generator 둘 모두에 조건을 부여하고 데이터를 입력하면 된다. 이 모델을 multi-modal model을 학습하는데 어떻게 사용되는지 설명한다. 그리고 이 방법이 어떻게 training label에 포함되지 않은 설명 태그를 생성하는 image tagging의 예시를 제공한다. 1.Introduction GAN은 생성 모델의 많은 .. 2022. 9. 23.
[파이토치] Transform 이번 포스트는 파이토치에서 학습을 위해 데이터를 처리의 한 부분인 Transform을 하는지 공부해 보자. Transform은 왜 필요하고 어떻게 할까? 머신러닝과 딥러닝에서 데이터를 학습에 용이하게 활용할 수 있도록 처리를 해야 한다. Transform은 데이터를 학습에 적합하도록 만드는 작업이다. 모든 torchvision dataset은 2개의 파라미터가 있다. transform은 feature들을 처리하는 데 사용하고 target_transform은 label을 처리하는 데 사용한다. 이들은 transformation 로직을 을 가지는 callable 객체를 받는다. 예제를 통해 이해를 해보자. torchvision에서 제공하는 FashionMNIST 데이터 셋의 feature는 PIL 이미지 형.. 2022. 9. 21.