yceffort

Tensorflow.js - 08. Build an audio recognizer

Posted on February 03, 2020

Transfer learning audio recognizer 1. 소개 2. 요구사항 3. Tensorflow.js와 오디오 모델 로딩 4. 실시간 예측 5. 예측을 테스트 해보기 6. 데이터 수집 코드를 자세히 보기 7. 수집한 데이터 테스트 8. 모델 훈련시키기 코드 살펴보기 Transfer learning audio recognizer 이번 튜토리얼에서는, Tensorflow.js를 활용하여 브라우저에서 학습시키는 커스텀 오디오 분류기를 만들어 볼 것입니다. 브라우저에서 슬라이더를 컨트롤을 하여 사운드를 만들어 볼 것입니다. 비교적 적은 학습 자료로 짧은 소리를 분류하는 모델을 만들기 위해 전송 학습을 사용할 것입니다. 그리고 음성 명령 인식을 위해 미리 훈련된 모델을 사용할 것입니다, 이 모델 위에 우리가 맞춤형 사운드 클래스를 인식하도록 새로운 모델을 훈련시킬 예정입니다. 1. 소개 먼저, 2…

Read full post

Tensorflow.js - 07. Build an image classifier

Posted on February 03, 2020

Transfer learning image classifier 1. Introduction 배우게 될 것 2. 요구 사항 3. Tensorflow.js와 MobileNet 불러오기 4. 브라우저에서 MobileNet을 로딩 5. MobileNet을 테스트 하기 6. 브라우저에서 웹캠을 활용하여 MobileNet 모델을 실행하기 7. MobileNet에 Custom 분류기를 추가하기 8. Optional: 예제를 확장하기 9. 우리가 배운 것 Transfer learning image classifier 본 튜토리얼에서는, 브라우저 환경에서 Tesnorflow.js를 활용하여 커스텀 이미지 분류기를 만드는 방법을 알아봅니다. 이번 장에서는, 최소한의 데이터를 활용하여 높은 정확도를 가진 모델을 만들기 위하여 transfer learning(전이학습)을 활용해볼 것입니다. 우리는 이미 잘 학습되어 있는 MobileNet…

Read full post

Tensorflow.js - 06. What is Transfer Learning

Posted on January 22, 2020

전이 학습이란 무엇인가? 전이 학습이란 무엇인가? 정교한 딥러닝 모델은 수백만개의 파라미터 (가중치)를 가지고 있으며, 이를 처음 부터 훈련하려면 엄청난 양의 컴퓨팅 자원이 필요한 경우가 많습니다. 전이학습은, 이미 관련된 작업에 대해 훈련받은 모델의 한 부분을 취해서, 새로운 모델에서 이를 재사용함으로써 이러한 컴퓨팅 자원의 소모를 단축시키는 기술입니다. 예를 들어, 다음 튜토리얼은 이미 이미지내에서 100…

Read full post

자바스크립트에서 http 요청하기 - fetch에 대한 고찰

Posted on January 21, 2020

1. 서론 2. XMLHttpRequest 3. JQuery Ajax 3. async await & fetch 4. fetch polyfill 5. deep dive to fetch 5-1. 에러 처리 5-2. Abortable Fetch 5-3. fetch in react 6. 결론 1. 서론 자바스크립트에서 http 요청을 하는 것은 이제 비일비재한 일이 되었다. 서버에서 모든 데이터를 가져와서 static 한 html을 만들어서 보여주고 있는 웹페이지는 아마 찾기 어려울 것이다. 맨 처음 웹을 배울 때, jquery의 ajax 요청을 배우 던 것이 한 5년 전 쯤 되었다. 비동기 http 요청이 비일비재한 요즘, 지금은 그 기술이 어디까지 왔을까? 그리고 어떻게 써야 더 깔끔하게 쓸수 있을까? 2. XMLHttpRequest Caniuse: XMLHttpRequest MDN: XMLHttpRequest whatwg: XMLHttpRequest…

Read full post

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