본문 바로가기

전체 글120

[AI] Dice Coefficient와 IoU(Intersection over Union) 비교 의료 영상(Medical Imaging) 분야에서 딥러닝 기반 분할(Segmentation) 모델의 성능을 평가할 때, 가장 많이 등장하는 지표로 Dice Coefficient와 IoU(Intersection over Union)가 있습니다.두 지표는 비슷해 보이지만, 수학적으로도, 해석적으로도 분명한 차이가 있으며 의료영상에서는 Dice가 더 선호되는 경향이 있습니다.본 포스팅에서는 두 지표의 정의, 수식, 차이점, 그리고 Medical Imaging 관점에서의 중요성을 명확하게 정리해보도록 하겠습니다.Dice Coefficient$$Dice(A, B) = \frac{2 \left | A\cap B \right |}{\left | A\right | + \left | B\right |}$$ $\left .. 2025. 4. 29.
[PyTorch] unsqueeze() vs squeeze() PyTorch로 딥러닝 모델을 다루다 보면 차원(Dimension) 을 추가하거나 제거해야 할 때가 자주 있습니다.이때 자주 등장하는 것이 바로 unsqueeze() 와 squeeze() 함수입니다.torch.unsqueeze() " 차원 하나를 살짝 껴 넣는다!" unsqueeze는 특정 위치(dim) 에 새로운 차원을 추가합니다. 추가된 차원은 크기가 1입니다. 1. torch.unsqueeze(x, dim=0)x = torch.tensor([1, 2, 3])# 0번째 축에 차원 추가x_unsqueezed = torch.unsqueeze(x, dim=0)print(x.shape) # torch.Size([3])print(x_unsqueezed.shape) # torch.Size([1, 3]) 2.. 2025. 4. 29.
[PyTorch] cat() vs stack() 딥러닝 실습을 하다 보면 데이터를 합치는 작업이 꼭 필요합니다.PyTorch에서는 주로 torch.cat()과 torch.stack() 두 가지 함수를 사용하는데, 저도 매번 헷갈려서 이번에 한번 쭉 정리해보려 합니다.torch.cat() "이미 있는 축(axis) 방향으로 나란히 연결한다." cat은 같은 차원끼리 이어붙이는 함수입니다. 차원 수는 변하지 않습니다. input들의 shape이 모든 차원에서 일치해야 하며, 붙이려는 차원만 다를 수 있습니다.1. torch.cat((a, b), dim=0)a = torch.tensor([[1, 2], [3, 4]]) # shape: (2, 2)b = torch.tensor([[5, 6], [7, 8]]) # shape: (2, 2)# dim=0 (.. 2025. 4. 29.
[Linux] 서버 접속 시 비밀번호 입력 생략 방법 매번 서버에 접속할 때마다 비밀번호를 입력하는 번거로움, 한 번쯤은 겪어보셨을 겁니다.특히, 자주 사용하는 서버라면 보안은 물론 접속 편의성도 중요하죠.이럴 때 가장 깔끔한 해결책이 바로 SSH Key 기반 접속입니다. SSH Key를 활용하면 비밀번호 없이 안전하게 서버에 접속할 수 있습니다.이번 포스팅에서는 윈도우 환경(PowerShell)에서 직접 SSH Key를 생성하고, 이를 리눅스 서버에 등록하는 방법을 단계별로 설명드리도록 하겠습니다.1. 로컬에서 ssh-key 발급 Powershell에서 ssh-keygen -t rsa -b 4096 명령어 실행 -t 뒤의 rsa는 암호화 알고리즘의 한 종류이고, -b 다음의 4096은 키의 크기(bit) 특정한 경로에 설정하지 않을 것이라면 모든 질문.. 2025. 4. 25.
[VSCode] VSCode에서 SSH 서버 연결 및 docker container 연결 방법 서버 환경에서 개발을 하다 보면 매번 터미널을 통해 SSH 접속을 하고, Docker 컨테이너에 들어가 작업하는 과정이 반복되곤 합니다.특히 머신러닝, 딥러닝, 데이터 분석처럼 GPU 서버와 컨테이너 환경이 필수적인 작업에서는 복잡한 환경 설정이 오히려 생산성을 떨어뜨리는 경우도 많죠. 이런 번거로움을 VSCode의 Remote 확장 기능을 통해 손쉽게 해결할 수 있습니다. VSCode를 이용하면 원격 서버(SSH)와 그 안의 Docker 컨테이너까지 마치 로컬 환경처럼 자유롭게 접근하고, 코드를 수정하거나 실행할 수 있어요. 이번 포스팅에서는 다음 내용을 단계별로 소개하겠습니다.VSCode에서 SSH 서버에 접속하는 방법Docker 컨테이너에 연결하는 방법SSH 서버 연결1. Remote - SSH e.. 2025. 4. 25.
[AI] 전이학습(Transfer Learning)에 대하여 데이터가 부족하지만 보다 높은 성능을 얻고 싶을 때 흔히 사용하는 방법이 있습니다.바로 전이학습(transfer learning)인데요, 이는 기존에 학습된 모델의 지식을 새로운 문제에 적용하는 기법입니다. 이번 포스팅에서는 매우매우 powerful한 방법인 전이학습에 대해 예제와 함께 알아보도록 하겠습니다.전이학습(Transfer Learning)이란?전이학습이란, 일반적으로 대량의 데이터를 사용하여 미리 학습된 모델을 가져와, 특정 목적에 맞게 일부만 수정하여 재학습하는 방식을 말합니다. 이미 똑똑한 녀석을 가져와 우리가 원하는 방식으로 조금만 더 학습시키는 느낌이기 때문에, 엄청난 효율을 볼 수 있는 것이죠!전이학습의 장점✅ 적은 데이터로도 높은 성능: 대량의 데이터가 없는 경우에도 강력한 모델을 .. 2025. 3. 5.
[AI] K-Fold Cross Validation에 대하여 머신러닝 모델을 평가할 때 일반적으로 데이터를 훈련(training)과 테스트(test) 세트로 나누는 방식이 사용됩니다. 하지만 이렇게 하면 데이터의 일부만 학습에 사용되기 때문에 모델이 데이터 분할에 따라 성능이 달라질 수 있습니다.또, 테스트 셋이 하나이기 때문에 정해진 테스트 셋에 모델이 오버피팅 될 가능성도 존재하죠.데이터 하나 하나가 귀할 때 테스트 셋은 모델의 훈련에 쓰일 수 없다는 점도 아쉬운 부분입니다. 이번 포스팅에서는 이러한 문제들을 해결할 수 있는 방법인 K겹 교차 검증(K-Fold Cross Validation)에 대해 알아보도록 하겠습니다.  K-Fold Cross Validation이란?K-Fold Cross Validation은 데이터를 K개의 폴드(fold)로 나누어 모델을.. 2025. 3. 3.
[AI] 딥러닝 개발을 위한 CPU, GPU, 메모리 이해하기 딥러닝 개발자가 되기 위해서는 컴퓨터의 핵심 부품인 CPU, GPU, 메모리에 대한 이해가 필수입니다. 이 세 가지는 딥러닝 모델을 학습시키는 과정에서 각각 중요한 역할을 합니다. 본 포스팅에서는 이들을 쉽게 설명하고, 딥러닝에서 어떻게 활용되는지 알아보겠습니다. CPU (Central Processing Unit) ✅ 특징CPU(Central Processing Unit, 중앙처리장치)는 컴퓨터의 두뇌 역할을 하며, 모든 계산과 명령을 처리하는 핵심 부품입니다.코어(Core): CPU의 작업 단위입니다. 코어가 많을수록 동시에 더 많은 작업을 처리할 수 있습니다. 예를 들어, 4코어 CPU는 4개의 작업을 동시에 처리할 수 있습니다.클럭 속도(Clock Speed): CPU가 1초에 몇 번 작업을 처리.. 2025. 2. 7.