Tech

· Tech/Docker
컨테이너가 실행될 때, 특정 내부 IP가 할당됩니다. 이때 내부 IP만으로는 외부와의 통신이 불가능하죠. 우리가 컨테이너를 활용하다 보면, 컨테이너와 컨테이너, 컨테이너와 호스트 등 서로 통신이 가능해야 할 순간이 필수일 겁니다. 이를 위해, 도커의 네트워크 구조를 살펴보고, 이러한 구조 아래에서 다양한 네트워크를 구성해 보겠습니다. 도커 네트워크의 구조 도커의 기본적인 네트워크 구조는 아래와 같습니다. 우리가 확인해 봐야 할 요소는 크게 호스트의 eth0, 기본 브리지인 docker0, 컨테이너의 가상 네트워크 인터페이스인 veth 이 3가지입니다. 각각의 요소를 살펴보겠습니다. eth0 호스트의 eth0은, 실제 우리가 외부와 연결할 때 사용하는 IP가 할당된 호스트 네트워크 인터페이스입니다. doc..
· Tech/Docker
Docker Volume 도커 이미지를 컨테이너로 실행하게 되면, 컨테이너는 아래 보이는 그림처럼 이미지레이어 위에 컨테이너레이어가 구성되었는 구조를 가집니다. 이때 이미지 레이어는 읽기전용(read only)이기에, 컨테이너로 무슨 작업을 하던 이 이미지 레이어는 어떠한 영향도 받지 않습니다. 반면, 컨테이너 레이어는 읽고 쓸수 있는 구조이기에(read & write), 컨테이너 내에서 생성되는 데이터는 해당 컨테이너 레이어에 저장되게 되죠. 리눅스의 union file system 기술이 위의 레이어들을 하나의 시스템처럼 동작할 수 있도록 해줍니다. 하지만, 여기에는 큰 위험성이 존재합니다. 해당 컨테이너를 삭제시키면, 컨테이너 레이어도 동시에 삭제되기 때문에 저장되어 있던 소중한 데이터를 잃을 수 ..
· Tech/Docker
나만의 Docker Image를 만들어보자 도커 허브에서 우리가 필요로 하는 이미지를 docker pull 명령어를 통해 마음껏 가져올 수 있습니다. 하지만, 도커 허브에 존재하지 않는, 우리만의 프로젝트를 이미지로 만들어 공유해야 할 순간이 있습니다. 이러한 순간을 대비해, 직접 커스텀 이미지를 만드는 방법을 알아보고자 합니다. 나만의 커스텀 이미지를 만들기 위해선 크게 Dockerfile을 이용하는 방법과, Commit 명령어를 이용하는 방법 2가지로 나눠볼 수 있습니다. 해당 포스팅에서 얻어갈 수 있는 정보는 아래와 같습니다. Commit을 통해 이미지 생성하기 Dockerfile을 통해 이미지 생성하기 Commit을 통해 이미지 생성하기 commit 명령어는 현재 작업중인 컨테이너를 이미지로 변환..
· Tech/Docker
도커의 필요성 도커를 처음 공부했을 때는 “어렵기만 하다”생각했습니다. 내가 왜 이 어려운 내용을 배우고 있는 건지, 그 어떤 목적성과 필요성이 없었기 때문이죠. 이처럼, 무작정 도커를 공부하려 하면 이해 안 가는 게 투성이 일 것입니다. 어렵기도 하고요. 하지만, 도커가 필요한 순간을 몇 번 마주치고 그 맥락을 인지하게 되면, 도커만큼 재밌고 또 잘 다루고 싶은 툴은 없을 거라 생각합니다. (깃도 비슷한 맥락이겠네요) 그러한 관점에서, 개인적으로 도커의 필요성을 느낀 순간을 공유하고자 합니다. 작년, 딥러닝 관련 외주 프로젝트를 진행할 당시였습니다. 마감 기한을 2일 남겨놓고 필요한 모든 코드와 테스트를 완료해 놓았습니다. 최종 데모를 위해 다른 컴퓨터에 실행만 시키면 되는 상황이었기에 매우 여유로웠습..
생성 모델의 한 축을 담당하는 Variational Autoencoder를 이해하기 위해서는, Autoencoder를 그냥 지나칠 수 없습니다. 이번 글에서는 Autoencoder에 대해 이해해 보는 시간을 가져보겠습니다. Autoencoder Autoencoder는 위의 그림과 같은 구조를 가지고 있으며 Encoder, Latent Vector, Decoder 이 3가지의 구성으로 이루어져 있습니다. 해당 모델의 가장 큰 목표는 데이터를 잘 압축하고자 하는 것입니다. 이 3가지의 구성 요소들이 어떻게 데이터를 잘 압축할 수 있도록 해주는지 하나하나씩 살펴보도록 하겠습니다. Autoencoder의 목표는 데이터를 잘 압축하는데에 있다. Encoder Autoencoder에서 Encoder의 역할은 입력된..
Variational AutoEncoder를 이해하기 위해서는 기존의 머신러닝 관점을 확률론적 관점으로 바라볼 수 있어야 합니다. 해당 글은 이활석님의 오토인코더의 모든것이라는 강연을 보고 정리한 느낌이 되겠습니다. 이번 포스팅에서는 아래의 문구를 이해하는데 초점을 맞추며 내용을 이어갈 계획입니다. 딥러닝 모델을 학습시킨 다는 것은 Maximum Likelihood Estimation 하는 것과 같은 말이다. 기존의 머신러닝 학습 과정 우리가 일반적으로 머신러닝을 처음 공부할 때, 아래와 같은 메커니즘으로 모델이 동작한다는것을 배웁니다. 학습데이터 x를 모델에 입력한다. 입력값 x가 모델 내의 파라미터(Weight and Bias)를 거쳐가며 예측값인 y_pred를 출력해 낸다. 이렇게 얻은 예측값 y_..
이전 포스팅 1.Task : 해당 프로젝트에서 문제정의에 대한 내용을 다룹니다. 2. DataCentric : 주어진 데이터를 살펴보며, 데이터가 가지는 문제점을 찾아내고 인사이트를 얻는 과정입니다. 3. Classification & CAM : 부품 불량을 위해 분류 모델을 학습하고, 신뢰성을 확보하기 위해 CAM기법을 적용해 보는 과정입니다. 4. CAM 대시보드 개발 : 최적의 CAM 시각화를 얻기 위한 실험과 함께 대시보드를 개발하는 과정입니다. [널링 외의 요소] Anomaly Detection 앞서 DataCentric 편에서 압입과 미압입인 데이터에 대해서 살펴보고 그 결과, 정상 데이터만을 활용하는 이상치 탐지 방법론으로 해결하고자 했습니다. 이상치 탐지는 처음 접해보는 task였기에, 서..
이전 포스팅 1.Task : 해당 프로젝트에서 문제정의에 대한 내용을 다룹니다. 2. DataCentric : 주어진 데이터를 살펴보며, 데이터가 가지는 문제점을 찾아내고 인사이트를 얻는 과정입니다. 3. Classification & CAM : 부품 불량을 위해 분류 모델을 학습하고, 신뢰성을 확보하기 위해 CAM기법을 적용해 보는 과정입니다. 최고의 CAM 시각화를 얻어내자 앞선 포스팅에서 분류 모델의 신뢰성을 위해 GradCAM을 적용해 봤습니다. 그 결과, 높은 성능에 대한 신뢰성을 어느 정도 확보할 수 있었죠. 단순히 신뢰성 확보를 위해 CAM을 적용해 본 거지만, 이 시각화 정보를 공장 측에도 제공해 주면 좋겠다는 생각이 문득 들었습니다. 단순히 어떤 불량인지 분류하는 걸 넘어, 불량의 위치정..
wjdrbs51
'Tech' 카테고리의 글 목록 (2 Page)