본문 바로가기

Python

(25)
PM 주차장을 머신러닝 알고리즘으로?! - 생각의 흐름을 연달아 적어 멀미를 유발할 수 있다. spark 강의를 듣다가 문득 재미난 생각이 들었다. spark 강의의 내용은, NYC TLC(뉴욕시 택시&리무진 요금데이터)를 가지고 아주 간단한 머신러닝을 돌려보는것이었다. 하지만 강의수준에서 끝나는것이 아닌, 생각의 확장을 했다. "택시 승하차 기록(시간 및 좌표)을 가지고 할 수 있는게 없을까..?" 2가지 생각을 하게 되었다. 1. 택시 승하차는 대부분 지하철역과 거리가 있을 것이다. - 지하철역에서부터 걷는 거리가 멀면 멀수록 택시를 자주 이용할 것이다. 2. 역과 역 사이 애매한 지점에서 택시를 타고 내릴것이다. - 애매한 지점에서 택시 대기를 한다면 승객을 더 자주 태울 수 있을 것이다. 이와같은 생각의 결론은 지하철역과 어느정도 거리..
ImportError: cannot import name 'zero_gradients' from 'torch.autograd.gradcheck' gradcheck.py에 아래 코드를 삽입하고 저장하면 해결된다. def zero_gradients(x): if isinstance(x, torch.Tensor): if x.grad is not None: x.grad.detach_() x.grad.data.zero_() elif isinstance(x, container_abcs.Iterable): for elem in x: zero_gradients(elem)
docker 권한 문제 얼마 전 도커와 쿠버네티스에 대해 관심이 생겼습니다. 책에 대한 내용을 열심히 따라하며 실습하던중 아래와 같은 에러가 생겼습니다. 전, VirtualBox에 Ubuntu 22.04를 사용하고 있습니다. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http:/$2fvar$2Frun$2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied linux에서 root 권한으로 실행한다면 나오지 않는 error라고 합니다. 대부분의 경우 docker..
vscode typescript debug !! vscode에서 typescript의 디버거를 사용해서 확인하고 싶었는데 자꾸 이러한 에러 메시지가 떴다. 디버거에서 톱니바퀴를 눌러서 어디어디를 고쳐라~ 라는 말은 너무나 많았었지만 난 왜 안되는 것이었을까.. 무튼 구글링을 통해 해결은 했다. 1. 터미널에 아래 입력 tsc --init 이렇게 많은 것들을 포함한 json이 나온다. 자세한 내용은 해당 가이드북을 통해 확인할 수 있다. 사실 나의 경우에는 아래의 것들만 필요해서 나머진 다 삭제했다. { "compilerOptions": { "strict": true, /* 타입을 강하게! 정의할것인가? */ "target": "ES6", /* 사용할 ECMAScript 버전 */ "module": "CommonJS", /* 모듈을 위한 코드 생성 설정..
Fail to create pixmap with Tk_GetPixmap in TkImgPhotoInstanceSetSize 우선 이 에러가 뜨기 전까지의 상황을 설명하겠다. CNN의 대표적인 예인 MNIST 이외에 다른 데이터를 찾았다. 전북대학교에서 구축했던 PHD08이라는 데이터셋이다. www.dropbox.com/s/69cwkkqt4m1xl55/phd08.alz?dl=0 해당 데이터를 다운받으면 아래와 같은 txt 파일의 연속으로 되어있다. 따라서 이를 하나씩 PNG로 변형시켜주는 작업이 필요했다. 운이 좋게도 성준영 님의 github에 해당 txt를 png로 하나씩 저장시키는 코드를 발견했다. 성준영 님 github : github.com/sungjunyoung/phd08-conversion 따라서, 힘들게 구현하지 않고 해당 코드를 사용했다. 사용방법은 아주 간단하며, README를 읽어도 쉽게 사용할 수 있다. c..
EfficienNet(2) 직전 글에서 생각했던 문제 중 2)와 3)을 다루는 글이다. 1)pooling의 방법을 잘 못 한것은 아닌가? 2)이미지의 색상에 따라 다르게 받아들이는 것일까? 3)Augmentation을 시행할 때 특성을 잃어버리는 것은 아닐까? 위의 사진처럼 모두 같은 사과 사진에 필터를 씌워 blue, green red로 분류해두었고, augmentation을 이용해 데이터를 증폭시켰다. 이후 모델을 만들었다. 중간에서 보면 한가지 의아한 것이 있다. 분명 'red', 'green', 'blue'인데 classes는 왜 '4'인가...? 이 부분은 나중에 다뤄야 할 것 같다. 위에서는 EfficientNet을 이용했으며, accuracy를 보면 알 수 있듯, 색상이 다를 경우에 CNN은 잘 분류를 해준다. 그렇다..
EfficientNet(1) 간만의 포스팅이다. CNN으로 Classification을 만들었다. 필자가 하고자 했던 것은 얼굴 사진으로 얼굴이 건조한지 아닌지를 분류하고 싶었다. (정확히 말하자면, 얼굴의 각질의 유무를 구분하고 싶었다.) 이미지를 통한 분류 작업이었기 때문에 CNN으로 눈을 돌렸다. 우선, CNN의 여러가지 기법을 찾아보았다. 간단한 기법인 줄 알았지만 역사도 길고, CNN기법에서도 여러가지가 있다는 것을 링크에서 확인했다. 그 중 가장 많이 보고 들었던 VGG-16을 처음으로 시도해보았다. 이미지 데이터가 있어야 했기에 데이터는 구글과 네이버에서 크롤링을 진행했다. 쓸만한 데이터가 각질을 포함한 얼굴 부분, 각질이 없는 얼굴 부분 각각 150개정도밖에 나오지 않았다. training set의 class별 최소 ..
dataframe 이중 for문 없애기 위의 dataframe의 전처리 작업을 위해 아래와 같이 코드를 작성하였다. 코드는 dataframe 내의 모든 셀들을 특정 threshold 이상이면 None을 주고 나머지 값들은 살려두려고 한다. 즉, threshold 이상의 값이면 None 값으로 replace 한다는 뜻이다. 기존에는 이중포문으로 시행을 했었으며, 출력된 시간을 확인하면 시간이 꽤 소요된다는것을 알 수 있다. pandas의 boolean indexing 이라는 것을 확인했다. pandas documentation 위와 같이 변경했으며, 현저하게 빠른 속도로 처리했음을 확인했다.