docker image를 build했더니 build에 실패했는데 원인은 no space left on device 공간이 없어서이다. docker system df -v로 확인해보니 엄청나게 많은 cache가 쌓여있었다. docker는 layer를 쌓을 때 cache를 이용해 이미지 빌드와 컨테이너 생성 시간을 줄이기 때문이다.$docker system df -vImages space usage:REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERSsnapshot latest 35grewd50504 12 days ago 14.97GB 0B ..
책태기가 왔다. 처음엔 마냥 재밌던 책들이 거대한 눈덩이가 되어 내가 해야할 일들을 산더미처럼 만들어주었다. 자기계발 책들을 위주로 읽다보니 뒤쳐져 따라가야한다는 생각을 계속 하게 되었다. 한달간 책 읽는 것을 쉬다보니 갈증이 생겼다. 조금 삭막해진 나에게 따뜻한 책이 뭐가 있을까 생각하는 중에 발견한 챌린지유 유튜버님이 추천해 준 책이다. 카피라이터인 저자 분의 아이가 태어난 뒤 그 아이가 눈이 보이지 않는다는 것을 깨닫고 마이너한 세상(약자들의 세상)에 관심을 가지게 되어 자신이 했던 카피라이터 능력을 사용한다.그렇다면 오직 약자만을 위한 책일까?하는 의문이 들 수 있다. 이 책에서 약자는 그 누구도 될 수 있다. 운동을 못하는 사람들은 운동약자, 책 읽는게 힘든 사람들은 독서약자가 될 수 있다. 결..
이전 포스팅에선 병렬처리를 위해 multiprocessing을 사용했지만 요즘 들어서는 ray를 활용하고 있습니다. 왜 multiprocessing에서 ray로 갈아탔는지에 대한 이유와 ray 사용법에 대해 정리하였습니다.🙋🏻♀️ multiprocessing이란?multiprocessing은 프로세스 스포닝(process spawning)을 통해 여러 프로세서를 활용한다. 여기서 말하는 프로세스 스포닝에 대해 설명하자면 우선, 스포닝은 알을 낳는다란 의미이다. 즉 부모 프로세스가 자식 프로세스를 만드는 과정을 의미한다. Pool 객체를 통해 병렬 처리를 하며 비동기처리, 이터레이터 등의 차이에 따라 map, imap, map_async, imap_unordered 등의 메서드를 사용한다.multip..
현재 회사에선 label의 신뢰성이 낮은 데이터를 다루고 있습니다. 이를 수작업으로 거를 수는 없어 사람의 리소스가 적으면서도 성능을 올리기 위한 방법에 대해 고민했고 그 중 발견한 논문입니다.NeurIPS 2020에서 Google Research가 발표한 FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence에 대해 정리한 글입니다. 고려대학교 산업경영학부 DSBA 연구실 Lab Seminar 유튜브 영상을 참고하였습니다.Introductiondeep network는 supervised learning에 좋은 성능을 보입니다. 방대한 양의 데이터셋을 사용하여 성능을 올리기엔 labeling이 필요하고 이를 위해선 사람..
이미지를 구글 클라우드 스토리지에 올릴때 파일의 픽셀값이 전체 원소의 약 9%가 변경됐다. 이로 인해 이미지를 통해 inference를 수행할 때 값이 달라지는 문제가 발생했다😣 이미지의 원소 하나하나에 큰 영향을 받는 이미지 분류 모델이기 때문에 이 부분은 빠르게 수정해야 했다.# 파일이 같지 않음AssertionError: Arrays are not equal to 7 decimalsMismatched elements: 215247 / 2362368 (9.11%)Max absolute difference: 255Max relative difference: 255. x: array([[[ 0, 0, 4], [ 5, 6, 10], [ 8, 9, 13],...
회사에서 데이터분석 업무를 함께 하면서 pandas를 활용해 다양한 데이터 처리를 해보았다. 그 중에서 자주 사용하는 것들 위주로 공유해보려한다.read_csv, to_csv파일을 dataframe으로 변환하는 데는 여러가지 방법이 있지만 excel과 csv 파일을 불러올 수 있다. excel 파일일 때 보통 csv 파일로 변환 후 data를 read한다. 이 부분만 보면 csv 파일이 용량이 더 작아서라고 생각할 수 있지만 실제론 excel 파일이 csv 파일보다 용량이 더 작다. 그럼에도 csv 파일을 사용하는 이유는 첫번째로 csv 파일은 plain text이며 주로 comma를 separate로 가지고 있다. excel 파일은 microsoft excel로 flexible하지 않다. 즉, 간단한 ..
토스가 처음 나왔을 때를 기억한다. 누군가 나에게 돈을 토스를 이용해 보냈다. 문자로 받았고 그 즉시 계좌번호를 입력해 돈을 받았다. 특이한 앱이 있네하고만 생각했다. 내가 토스를 깔게 된건 그리 오래되지 않았다. 제일 마음에 들었던 건 디자인이었다. 금융 앱 중에 가장 예뻤다. 맞다. 난 예쁜걸 좋아한다. 개발자로써 비바리퍼플리카를 안들어본 사람은 없을 것이다. 거기가 그렇게 빡세대. 그만큼 보상도 좋고 능력있는 사람도 많대. 그 뒤로 토스를 계속해서 사용하고 있다.토스앱을 사용하다보면 토스에서 일하는 사람들이 어떤 제품을 만드는지 어떤식으로 제품을 소개하는지 알 수 있었기 때문에 자연스럽게 공부가 됐다. 어느날 버스를 타고 가다가 문득 토스 책을 읽고 싶다란 생각이 들었다. 이미 완제품을 보기만 했던..
모델을 학습시키고 저장 시에 고민이 생겼다. 어떤 것을 기준으로 좋은 모델이라고 말할 수 있을까? 기존엔 loss를 중심으로 생각했지만 내가 보고 있는 데이터는 불균형이 심하기 때문에 단순히 loss가 기준이 되는 게 아닐거라는 생각을 했다. 그래서 다른 사람들은 어떻게 사용하고 있는지 찾아봤다. 제일 좋은 레퍼런스는 캐글이다. 코드도 많고 성능 중심이기 때문이다. 그 중에 봤던 코드는 Pytorch multi labels by cumulated level 🔗 였다. 여기서 best model을 저장하는 코드만 가져왔다.if auroc > best_metric: best_metric = auroc torch.save(model.state_dict(), f'dict_model_{j}_fold_..
딥러닝 모델을 공부하다보면 항상 막히는 확률..!!!🤦🏻♀️ 특히 딥러닝 기반의 생성 모델을 공부할 땐 수식에서 확률을 이해해야합니다. 그래서 이번 글에선 자주 나오는 확률 4개의 용어에 대해 정리하려해요. 내용은 주로 미술관에 GAN 딥러닝 실전 프로젝트를 참고했습니다.표본공간표본 공간은 샘플 x가 가질 수 있는 모든 값의 집합입니다. 아주 간단한 예시로 주사위를 던져 나온 눈의 수라고 할 때 샘플은 1, 2, 3, 4, 5, 6이 될 수 있고 표본 공간은 S={1,2,3,4,5,6}으로 나타낼 수 있어요. 또다른 예로 이 세상 모든 성인들의 키가 100cm부터 300cm이고 몸무게가 30kg부터 200kg까지라면 아래와 같은 표본 공간을 만들 수 있습니다. 이 세상에 180cm에 몸무..

요즘은 결과보다 과정을 중요시 여긴다. 먼저 제품을 만드는 경우도 있지만 제품을 만들어내는 과정과 자신들만의 철학을 보여주고 팬층을 만든 후 제품을 만들었을 때 실패가 적다고 한다. 현재 나 또한 나라는 브랜드를 만들고 있는 과정이라고 생각한다. 내가 공부하고 있는 내용들을 공유하고 컨텐츠를 만들고 내가 생각하는 내용들을 글로 적고 공유하고 있다. 이런 과정을 공유하는 것에서 내가 주요하게 봐야하는 것들은 어떤게 있을지, 어떤 영역에 힘을 써야할지 궁금했다. 인스타그램이란 SNS는 프로세스를 공유하는데 좋은 플랫폼이라고 생각한다. 올리기 쉽고 간략하게 적을 수 있으며 사진도 업로드할 수 있다. 인스타그램을 이용하여 나의 프로세스를 공개하는 입장에선 더 중요하게 여겨졌다. 결국 이 책이 말하고자 하는 건 ..
드로우앤드류님 유튜브 영상에서 추천 받았던 책이다. 어떤 내용인지 아무것도 모른채로 읽었다가 백만대는 두들겨 맞은 것 같다..과연 대체할 수 없는 사람이 되기 위해선 어떤 사람이 되어야할까?하는 의문에서 책을 읽기 시작했다. 결국 이 책이 전하는 내용은 나만의 것을 해야하고 나의 예술을 사람들에게 선물할 수 있는 존재가 되어야한다는 것이다. 창작을 위해 영감이 떠오를 때까지 기다리는 것이 아니라 영감이 떠오르게끔 습관을 만들어야한다는 것이 꽤 재밌는 시선이기도 했다. 최근 내가 공부하고 있는 내용들을 어떻게 하면 나에게도 다른 사람들에게도 도움이 될 수 있을지 고민하는 시간을 가지고 있다. 나와 같은 고민을 하는 사람일수록 이 책이 도움이 되지 않을까 싶다. 요즘 조용한 퇴사란 말이 새롭게 떠오르고 있다..
회사에서 자주 사용하는 module은 ubuntu의 특정 버전에서만 사용할 수 있습니다. 현재 사용하고 있는 ubuntu 버전과 맞지 않고 업그레이드도 불가능한 상황이라 도커를 사용하여 ubuntu 20.04 컨테이너를 만들게 되었고 배우게 된 내용을 공유하고자 합니다. 도커란? 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 컨테이너란 배에 실는 네모난 화물 수송용 박스를 생각할 수 있는데 각각의 컨테이너마다 옷, 신발, 전자제품 등 다양한 화물을 넣을 수 있고 다양한 운동수단으로 쉽게 옮길 수 있다. 서버에서 이야기하는 컨테이너도 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다! 도커가 있기 전 기존의 방식 주로 가상화를 하였다. ..