yceffort

Tensorflow.js - 05. Training and Prediction in Node.js

Posted on January 15, 2020

Training and Prediction in Node.js 1. 소개 2. 요구 사항 3. Nodejs.app 설치 4. 학습/테스트용 데이터 설치하기 5. 구질을 구별하는 모델 만들기 6. 모델을 서버에서 훈련시키기 7. 클라이언트 페이지를 만들고 display 용 코드 만들기 8. 앱 실행하기 9. 배운것 Training and Prediction in Node.js 본 튜토리얼에서는 MLBAM에서 제공하는 피쳐 센서 데이터를 바탕으로, 야구의 칭 유형을 추측하는 모델을 만들어볼 예정입니다. 이 튜토리얼은 서버사이드 어플리케이션인 Node.js에서 진행될 예정입니다. 이 튜토리얼에서는 를 서버사이드에서 npm package로 설치하고, 모델을 만든 다음, 실제로 피치 센서 데이터로 훈련까지 진행해 볼 것입니다. 또한 학습 진행 상태를 클라이언트에 제공하고, 훈련된 모델을 바탕으로 예측하는 서버/클라이언트 아키텍쳐도 만들어 볼 것입니다.…

Read full post

React count down에서 배운 event-emitter 와 requestAnimationFrame

Posted on January 14, 2020

리액트에서 카운트 다운을 만들며 배운 것들 리액트에서 카운트 다운을 만든다고 가정해보자. 가장 먼저 생각나는대로, 빠르게 구현한다면 아래와 같은 느낌이 될 것이다. 하지만 이 코드는 한가지 문제를 가지고 있다. setInterval, setTimeout 은 자바스크립트의 메인 쓰레드에서 실행된다. 그런데, 자바스크립트는 싱글스레드 기반으로, 동시에 할 수 있는 일은 단 한가지로 제한 되어 있다. 따라서 중간에 interruption이 있거나 모종의 이유로 처음에 선언한 시간을 정확히 지켜서 (여기서는 1000ms) 실행을 보장해주지는 않는다. 아래 코드를 사파리에서 실행해보자. 자바스크립트 엔진은 오직 싱글 스레드만을 사용하므로, 비동기 이벤드들을 큐에 대기시킨다. 따라서 그 사이에 다른 이벤트 (마우스, 키보드 등) 가 발생하면 이벤트가 지연될 수 있다. 또한 지연없는 또는 이 5회 이상 실행될 경우, 4ms 이상의 지연시간이 강제적으로 추가된다. 그리고 이는 HTML…

Read full post

2020년, 매일 github에 contribution 하기

Posted on January 11, 2020

블로그의 성장 2018년 5월 1일에 블로그를 시작한 이례로 헛소리를 지껄이는 블로그에서, 제법 이사람 저사람 찾아오는 블로그로 성장했다. 꾸준한 블로그 뻘 글과 회사에서 일하는 것 덕분에 github contribution에 초록색 불도 많이 들어오고 있다. github contribution은 2013년에 생긴 이래로 개발자의 daily 성과 지표를 알려주는데 도움을 주고 있다. contribution의 기준 default branch (master)나 gh-pages (github page 브랜치)에 기여하는 것 이슈를 만드는 것 PR을 만드는것 PR 리뷰를 제출하는 것 매일매일 Contribution 해보기 학교가 끝나서 심심해졌겠다, 2020년에 daily로 contribution을 해봐야 겠다. 달력에 모두 초록불이 들어오도록

Read full post

Chrome Samesite 쿠키 정책

Posted on January 09, 2020

문제의 시작 지난 주말, 엄청나게 급하게 빠른 속도로 프로젝트를 heroku에 올릴 일이 있었다. DB도 새로만들어야하고, 로그인도 필요한 사이트라 DB는 Heroku의 Clean DB를, 로그인은 google sign-in for websites을 사용하였다. 처음에는 passport google auth를 사용하려다가, 그냥 하는 김에 직접 api 도큐먼트를 보면서 진행하였다. 진행 하다보니, 로그인이 안되는 문제가 발생하였다. Chrome beta를 기본 브라우저로 사용하고 있었는데, 문제는 다음과 같았다. https://github.com/anthonyjgrove/react-google-login/issues/261 https://github.com/google/google-api-javascript-client/issues/561 https://bugs.chromium.org/p/chromium/issues/detail?id=1019168#c2…

Read full post

Tensorflow.js - 04. CNN

Posted on January 02, 2020

Handwritten digit recognition with CNNs 1. 들어가기전에 만들어 볼 것 우리가 배울 것 학습 전에 준비해야 할 것 2. Set up HTML, Javascript 생성 데이터와 코드를 위한 자바스크립트 파일 생성 테스트 해보기 3. Load the Data 4. 작업의 개념화 5. 모델 아키텍쳐 디자인 합성곱 데이터를 평평하게 만들기 확률분포를 계산하기 6. 모델 훈련하기 메트릭 모니터링 데이터를 tensor로 변환하기 7. 모델 평가하기 예측하기 각 숫자당 정확도 Confusion Matrix 결과 8. 정리 Handwritten digit recognition with CNNs 이 튜토리얼에서는, Tensorflow.js의 CNN…

Read full post

머지된 브랜치를 삭제하는 스크립트

Posted on January 01, 2020

remote에서 이미 master로 머지된 local/remote 브랜치를 삭제하는 스크립트 우교수님께 감사의 말씀을 🙇‍♂️

Read full post

블로그 개편했습니다. 😎

Posted on December 30, 2019

주말에 집구석에 혼자 오래있을 일이 있어서, 생각난 김에 블로그를 개편했습니다. 이 전에는 hexo 기반으로 만들어진 블로그를 작업했는데, hexo 생태계가 관리가 잘 안되고 있는 건지 플러그인이나 기능들이 제대로 동작을 안하더군요. wordpress -> ??? -> github pages -> hexo -> gatsby 까지 벌써 개편만 한 다섯번 쯤 한거 같네요. 이제 그만 하겠습니다. 정적 사이트 생성기로 괜찮은게 뭐가 있나 알아보던 차에, 회사에서도 Gatsby를 쓰고 있길래 gatsby로 변경해보았습니다. 변경과정의 난관 front-matter를 관리하는게 묘하게 달라서 파이썬 스크립트로 통일 작업을 좀 해야 했다. 태그들에 svg 아이콘이 달려 있는게 이뻐서 테마를 선택했는데, 몇몇 아이콘들은 직접 svg를 편집해서 작업해야 했는데 이게 정말 귀찮았다. 그리고 이번 기회에 svg…

Read full post

중앙은행 디지털화폐: 왜 정부는 디지털화폐를 발행하려고(하지 않으려고) 할까

Posted on December 27, 2019

Central Bank-Issued Digital Currencies: Why Governments May (or May Not) Need Them 원문 일본은행 아마미야 마사요시 부총재는 20일 중앙은행에서 발행한 디지털 화폐(CBDC)가 기존 화폐를 개선하지 못할 가능성이 낮다고 거듭 주장했다. CBDC(중앙은행 발행 디지털 화폐, Central Bank-Issued Digital Currencies), 즉 국가 규모의 디지털 화폐에 대한 개념은 전 세계의 많은 정부들을 끌어들였다. 이들 중 일부는 이미 가상화폐를 출시했고 일부는 계속해서 경제적 영향을 조사했으며, 반면 다른 일부는 일본처럼 이 아이디어를 완전히 폐기하기로 결정했다. CBDC가 무엇인가? CBDC(국가 디지털 통화)는 연방 규제 기관이 발행하고 제어하는 가상 통화다. 따라서, 그들은 국가에 의해 완전히 통제된다. CBDC…

Read full post

자바스크립트의 이벤트루프, 태스크, 그리고 마이크로 태스크

Posted on December 27, 2019

자바스크립트는 단일 스레드 기반의 언어 자바스크립트는 '단일 스레드' 기반의 언어다. 즉, 스레드가 하나이기 때문에 동시에 하나의 작업만 처리할 수 있다. 그러나 자바스크립트가 사용되는 웹을 곰곰히 생각해보면 동시에 여러개의 작업을 처리하는 모습을 볼 수 있다. 스레드가 하나인 자바스크립트는 동시성을 어떻게 처리할까? 먼저 브라우저 구동환경을 살펴보자. browser nodejs 위 이미지에서, 자바스크립트 엔진은 메모리 할당을 관리하는 heap과 call stack만 존재하는 것을 알 수 있다. 즉, 동시성에 대한 처리는 자바스크립트 외부에서 처리하고 있음을 알 수 있다. 즉, 정리해서 말하면 자바스크립트는 단일 스레드기반의 언어라서, 단일 호출 스택을 사용하지만, 실제로 자바스크립트를 이용하는 환경 (브라우저, Nodejs)에서는 여러개의 스레드를 활용하며, 이러한 환경을 자바스크립트 엔진과 상호 연동하기 위해서 사용하는 것이 바로 이벤트 루프다. 단일 호출 스택, Run-to…

Read full post

Tensorflow.js - 03. Linear Regression

Posted on December 23, 2019

Linear Regression 몇 번째 선형 회귀인지 알 수 없다. 01. 2d data로 예측해보기 이번 튜토리얼에서는 자동차 세트를 표현한 숫자 데이터로 예측하는 모델을 훈련시켜 봅니다. 이 연습에서는 다양한 종류의 모델을 훈련하는 공통적인 단계를 보여주고, 이에 따라 작은 데이터 세트와 간단한 모델을 사용합니다. 1차적인 목표는 Tensorflow.js의 훈련 모델과 관련된 기본적인 용어, 개념 및 신택스를 숙지하고, 추가 학습을 위한 발판을 마련하는 것입니다. 02. Set up 03. 데이터를 읽어오고, 포맷팅하고, 시각화 하기 가장 먼저, 데이터를 읽어오고 포맷팅하고, 시각화하여 우리가 훈련하기 좋은 모델 상태로 만들어 보자. 여기에서 데이터를 쓸 것이다. (https://storage.googleapis.com/tfjs-tutorials/carsData.json…

Read full post