본문 바로가기

Programming

pytorch 1.0, distributed training 관련 기록 pytorch 1.0이 release 됐고, 관련 내용들을 적어놓은 blog post에 대한 기록https://code.fb.com/ai-research/pytorch-developer-ecosystem-expands-1-0-stable-release/ pytorch 관련 projectsHorovod - a distributed training framework that makes it easy for developers to take a single-GPU program and quickly train it on multiple GPUsPytorch Geometry - a geometric computer vision library for PyTorch that provides a set of rout..
React JS, Babel, Webpack React JS로 개발을 하다 보면, 웹 Front를 이루는 많은 component들이 각각의 목적에 맞게 나눠져 있을 때가 많다. 그리고 각 Component들이 서로 별개의 library를 사용하는 경우도 있지만, 공통적으로 사용하는 library들도 정말 많다. 이러한 JS 파일들을 파편화 상태 그대로 서비스 하는 것이 아니라, 하나로 뭉쳐서 그리고 의존성 체크까지 다 한 상태의 하나의 파일로 만들어 서비스를 하고 싶다는 생각에 찾아보게 되었고, webpack이란 걸 알게 되었다. 또한, React JS는 JSX라는 Javascript에서 사용하는 Markup Code를 사용하는데, 이를 바로 rendering하여 사용자에게 보여줄 수 없다. 이 때 사용하는 것이 Babel, Babel Loader..
Python library windows installer http://www.lfd.uci.edu/~gohlke/pythonlibs
Nginx, PHP-FPM에서 child process 개수 결정하기 현재 Nginx, PHP-FPM, PHP를 이용한 웹 서비스를 운영중인데, 서비스 사용자가 점점 늘어나면서 PHP-FPM에서 child process가 부족해서 lock 걸리고 있다는 에러를 뱉어냈었다. 그래서 child process의 개수를 적절한 개수로 늘리려고 정보를 찾다 괜찮은 글을 발견해서 번역 겸 기록으로 글을 쓰게 됐다. 해당 링크는 https://www.kinamo.be/en/support/faq/determining-the-correct-number-of-child-processes-for-php-fpm-on-nginx Introduction Nginx + php-fpm을 이용해 웹 서비스를 운용하다 보면 아래와 같은 error 메시지를 볼 수 있는데, 이럴 때 어떻게 child pro..
React JS Lifecycle Method 소개 관련 글 React JS 소개와 간단한 사용법 및 에제 React JS, Babel, Webpack 서론 React JS는 기본적으로 Component들은 React.createClass({})를 통해 생성되고, Mount하고 Unmount하는 과정과 this.state, this.props와 같은 data flow를 통해 Front를 핸들링한다. 이러한 Component에는 이 component가 어떠한 스펙을 갖고 있는지에 대한 component spec에 대해 정의를 해야하고, 또한 필요하다면 이 component가 Mount되기 전, Mount 된 후 혹은 Update 된 후 등 할일에 대해 정의할 수 있는 추가적인 life cycle method를 제공한다. Component Specs 첫 번째..
React JS 소개와 간단한 사용법 및 에제 관련 글 React JS Lifecycle Method 소개 React JS, Babel, Webpack 서론 최근까지 웹 개발을 할 때에 Python Flask와 Jinja Template을 이용해 간단하게 개발을 해 왔었다. 그러다보니 Flask API와 Template Jquery로 이루어진 Javascript 파일들이 난잡하게 어질러 져 있어 직접 개발을 하고도 너무 더럽다 라는 생각이 많이 들었었다. 그러다가 React JS라는 것을 알게 되었고 이를 이용해 웹 개발을 하다보니 정리가 잘되기도 하고 실제 웹을 컨트롤할 때 무척 편하다는 느낌을 받게 되었다. 아직 React JS에 대해서 잘 이해를 못하고 단순히 Doc에 나온대로 사용만 하는 수준이지만 지금까지 해왔던 것들을 정리 및 사람들에게 ..
[Python] Web Driver & Selenium 사용하기 Webdriver & Selenium Web Driver는 FireFox, Chrome 등과 같은 브라우저에서 제공하는 API들로, 이를 이용하면 코드를 통해 실제 사용자가 브라우저를 다루는 것처럼 사용할 수 있다. 또한 Python에는 이러한 Web Driver를 사용하기 위한 Selenium이라는 라이브러리가 존재한다. 이러한 Web Driver를 이용하면, 단순 패킷 요청만 하는 것이 아닌 브라우저 자체를 이용하는 것이기 때문에 JS와 CSS에 관한 것들도 자동으로 테스트를 할 수 있고, Google과 같이 크롤링 하기 힘든 곳도 크롤링을 할 수 있다.(물론 느리다) Web Driver로 사용가능한 브라우저로는, Firefox Chrome IE Opera PhantomJs 등의 브라우저가 존재하고,..
집단지성 프로그래밍 4(Hierarchical Clustering) 이 글은 토비 세가란 저, 윤종완 역의 집단지성 프로그래밍 책을 읽으며 개인적으로 공부하며 정리한 내용이다. 이전 글 목록 집단지성 프로그래밍 1(Machine Learning, Euclidean Distance, Pearson Correlation Coefficient) 집단지성 프로그래밍 2(Recommendations) 집단지성 프로그래밍 3(Term Vector) Hierarchical Clustering 계층적 군집화(hierarchical clustering) 알고리즘은 가장 유사한 두 그룹을 계속 병합하는 방식으로 그룹 계청을 만든다. 이 그룹들은 한 개 항목으로 시작되고 매 반복마다 이 함수는 모든 그룹 쌍 간의 거리를 계산하고 함께 병합하여 새로운 그룹을 생성한다. 이러한 과정을 한 개 ..