반응형
반응형


Awesome Reinforcement Learning

A curated list of resources dedicated to reinforcement learning.

https://github.com/aikorea/awesome-rl

We have pages for other topics: awesome-rnnawesome-deep-visionawesome-random-forest

Maintainers: Hyunsoo KimJiwon Kim

We are looking for more contributors and maintainers!

Table of Contents

Codes


반응형
반응형

깃허브에서 인기 높은 구글의 오픈소스 프로젝트 10종

1.Angularjs

2. 머티리얼 디자인 아이콘

3.머티리얼 디자인 라이트

4.‘고’ 언어

‘고’는 2009년 구글이 만든 프로그래밍 언어다. C언어의 대안 언어로도 평가되고 있으며, 현재 1.4버전까지 나왔다. 고 언어의 ‘고루틴(goroutine)’을 이용하면 보다 쉽게 동시성 프로그래밍을 할 수 있다. 복잡하게 작성하고 디버깅도 어려웠던 병렬처리도 고 언어에서는 편한 방법으로 처리할 수 있다. 빌드 속도가 빠른 것도 고의 장점이다. 또한 고는 헤더 파일 등을 통해 의존 관계를 분석하지 않는다. 그 덕분에 기존엔 몇 시간씩 걸리던 컴파일 시간을 줄일 수 있다.

아직 국내에서 고를 활용하는 사례는 적은 편이지만, 커뮤니티 중심으로 한글 문서화 작업이 이뤄지고 세미나도 열리고 있다. 해외에는 고를 도입한 사례를 종종 볼 수 있다. 유튜브, 히로쿠, 도커, 드롭박스 등에서 고 언어를 활용하고 있다고 밝혔다.

5. 웹 스타터 키트

‘웹 스타터 키트’는 말 그대로 웹 개발을 처음 시작하는 사람에게 제공하는 예제 소스다. 이제 막 웹 개발에 입문하는 사람이라면 웹 스타트 키트를 자습서로 활용할 수 있다. 구글이 어떤식으로 웹 개발을 진행하는지에 대한 기준도 알 수 있다. 웹 스타터 키트는 반응형 웹사이트가 부드럽게 구현될 수 있도록 신경썼고, Sass를 활용할 수 있게 지원했다. 성능을 높이고 여러 기기를 쉽게 동기화할 수 있는 기능도 구현돼 있다.

6.쿠버네티스

컨테이너 기술은 최근 엔터프라이즈 분야에서 큰 화두가 되고 있다. MS, IBM, VM웨어 등 클라우드를 준비하는 기업일수록 컨테이너를 지원하느라 바쁘다. 그 중 구글은 컨테이너 기술의 선두주자로 꼽힌다. 특히 오픈소스 전문기업인 레드햇과 손잡아 컨테이너 기술을 부지런히 연구하고 있다. 쿠버네티스는 구글이 오픈소스 형태로 연구하는 컨테이너 기술이다. 구글은 쿠버네티스를 기반으로 상용 클라우드 서비스도 만들고 있다. 쿠버네티스 뿐만 아니라 ‘c어드바이저‘, ‘LMCTFY(Let Me Contain That For You)‘라는 또 다른 컨테이너 오픈소스 기술도 공개했으며, 이 역시 개발자들에게 큰 관심을 받고 있다.

7.구글 I/O 2015 안드로이드 앱

‘구글 I/O’는 구글의 연례 개발자 행사다. 말하자면 ‘구글 I/O 안드로이드 앱’은 컨퍼런스 참가자들에게 도움을 주는 앱이다. 이미 올해 I/O 행사가 다 끝난 마당에 원본소스에 대한 관심이 높은 이유는 무엇일까? 바로 구글이 만든 앱 가운데 가장 재활용하기 좋은 앱이기 때문이다. 구글은 검색, e메일 등의 서비스를 제공한다. 일반 기업이 똑같이 검색, e메일 등의 앱을 만드는 경우는 드물다. 하지만 컨퍼런스, 세미나를 주최하는 기업들은 아주 많고, 관련 앱을 만들려는 기업도 많다. 구글도 깃허브 페이지에 “만약 앱을 만드는 사람이 있다면 이 소스코드가 좋은 시작점을 알려줄 것”이라고 설명하고 있다.

8.텐서플로

‘텐서플로’는 공식 출시 며칠 만에 많은 사람들이 즐겨찾기한 오픈소스 소프트웨어다. 깃허브는 일, 주, 월 단위로 가장 관심을 많이 받는 오픈소스 프로젝트를 집계하고 있는데, 텐서플로는 11월 둘째 주 가장 인기있는 프로젝트로 조사됐다. 머신러닝은 많은 IT기업들이 투자하고 있는 기술이다. 기술 수준은 아직 초기단계라 다양한 방법론과 실험이 이뤄지고 있다. 텐서플로는 머신러닝을 연구하는 사람들에게 좋은 참고자료가 될 것으로 보인다.

텐서플로라는 이름에서 텐서는 ‘다차원의 데이터 배열’를 처리한다는 의미에서 나왔다. 플로라는 단어는 노드와 엣지를 이용하는 데이터 흐름도(flow graphs)를 사용해서 쓰여졌다. 노드에서는 수학적 계산을 이뤄지거나 데이터 결과값이 보여진다. 텐서플로는 여러 노드들이 무엇인가 계산하거나 실행할 때 다차원 데이터 배열들이 막히지 않고 동시다발적으로 잘 흘러갈 수 있도록 도와준다.

9.딥드림

‘딥드림’은 구글 리서치팀이 만든 예제코드이다. 아이파이썬 노트북(IPython Notebook) 기반에서 확인할 수 있다. 예제코드는 신경망(Neural Network)을 활용해 그림의 일부를 바꿔 새로운 예술작품으로 만든 내용을 포함하고 있다. 구글은 이 예제로 신경망이 어떻게 작동하는지, 복잡한 분류 문제를 어떻게 해결했는지, 네트워크 구조를 어떻게 해결하는지에 대한 정보를 줄 수 있을 것으로 기대했다. 신경망과 예술을 결합한 조합 때문에 더 많은 사람들이 딥드림에 주목했다.

10.지브라크로싱

‘지브라크로싱’은 1차원 혹은 2차원 QR코드를 인식하는 기술이다. 최근 모바일에서 QR코드를 활용하는 경우가 많아져 지브라크로싱에도 관심이 높아지고 있다.



.

반응형
반응형

텐서플로(Tensorflow) 시작하기


https://gist.github.com/haje01/202ac276bace4b25dd3f



소개

텐서플로우(TensorFlow)는 기계 학습과 딥러닝을 위해 구글에서 만든 오픈소스 라이브러리입니다. 데이터 플로우 그래프(Data Flow Graph) 방식을 사용하였습니다.

데이터 플로우 그래프

데이터 플로우 그래프는 수학 계산과 데이터의 흐름을 노드(Node)와 엣지(Edge)를 사용한 방향 그래프(Directed Graph)로 표현합니다.

data flow graph

노드는 수학적 계산, 데이터 입/출력, 그리고 데이터의 읽기/저장 등의 작업을 수행합니다. 엣지는 노드들 간 데이터의 입출력 관계를 나타냅니다.

엣지는 동적 사이즈의 다차원 데이터 배열(=텐서)을 실어나르는데, 여기에서 텐서플로우라는 이름이 지어졌습니다.

텐서(Tensor)는 과학과 공학 등 다양한 분야에서 이전부터 쓰이던 개념입니다. 수학에서는 임의의 기하 구조를 좌표 독립적으로 표현하기 위한 표기법으로 알려져 있지만, 분야마다 조금씩 다른 의미로 사용됩니다. 여기에서는 학습 데이터가 저장되는 다차원 배열 정도로 이해하시면 되겠습니다.

특징

텐서플로우는 다음과 같은 특징을 가집니다:

  • 데이터 플로우 그래프를 통한 풍부한 표현력
  • 코드 수정 없이 CPU/GPU 모드로 동작
  • 아이디어 테스트에서 서비스 단계까지 이용 가능
  • 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리
  • Python/C++를 지원하며, SWIG를 통해 다양한 언어 지원 가능

이후의 설명은 Python을 중심으로 진행하겠습니다. (pip를 통한 Python3설치는 개발 중으로, Python2 기반으로 하겠습니다.)

"구글이 텐서플로우를 오픈소스로 한 것은, 기계 학습이 앞으로 제품과 기술을 혁신하는데 가장 필수적인 요소라고 믿기 때문입니다." - Google Brain Team

설치

텐서플로우는 설치가 비교적 쉬운 편입니다만, 다음과 같은 제약이 있습니다:

  • Unix계열 OS(Linux/Mac OSX)만 지원합니다.
  • GPU 버전은 Linux만 지원합니다.

Linux / Mac OSX

Unix 계열 OS를 사용하시는 분들은 공식 페이지의 설치 문서를 참고하시면 쉽게 설치할 수 있습니다.

윈도우

윈도우 사용자 분들은 가상 머신을 이용하거나, 도커 툴박스 설치 후 진행하시기 바랍니다.

이미지를 받고 컨테이너 실행

텐서플로우의 도커 이미지는 소스코드, 예제, 툴도 포함되어 있기에 풀 버전을 받는 것을 권합니다.

Linux / Mac OSX

Unix 계열 OS에서는 아래의 명령을 실행하면 이미지를 받고 컨테이너가 실행됩니다. 컨테이너 실행 후 자동으로 컨테이너 안의 쉘 환경으로 들어가게 됩니다.

docker run -it b.gcr.io/tensorflow/tensorflow-full

컨테이너 안의 /tensorflow 폴더에 소스가 설치되어 있습니다. (주의: 이 폴더에서 모듈을 import 하시면 에러가 발생합니다. )

윈도우

윈도우의 경우 Docker QuickStart Terminal 실행 후(이때 고래 그림 아래의 IP를 기억해 둡니다) 아래와 같이 실행하시기 바랍니다.

winpty docker run -it -p 8888:8888 b.gcr.io/tensorflow/tensorflow-full

이미지를 받은 후 컨테이너가 실행되면, Jupyter 노트북 서버가 자동으로 시작된 상태입니다. 웹브라우저에서 '위의IP:8888'을 입력하면 Jupyter Notebook 환경에 접속됩니다. 여기에서 tensorflow를 사용하실 수 있습니다.

동작 확인

설치가 잘 되었는지 다음의 코드로 확인해봅니다.

$ python

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
>>>

.

반응형
반응형

데뷔 후 뜨거운 관심을 받은 오픈소스 프로젝트 10개   http://www.bloter.net/archives/266272

 

깃허브는 오픈소스 프로젝트들의 성지라고 불릴 만큼 다양한 프로젝트를 공유한다. 개발자는 깃허브에서 소스코드를 저장하고 살펴보는 것 뿐만 아니라 특정 인물을 팔로우하거나 소셜 활동도 할 수 있다. 대표적으로 깃허브에서 ‘스타’는 ‘좋아요’를, ‘포크’는 공유 기능을 담당하는데, 이 수치를 보면 오픈소스 프로젝트의 인기를 가늠할 수 있다. 깃허브는 10월25일, 소스코드가 공개된 후 1주일 동안 가장 많은 스타수를 받은 프로젝트를 1위부터 10위까지 공개했다. 개발자들의 기대가 그만큼 높은 오픈소스 프로젝트라고 할 수 있겠다.

 

10위. 에니메이(Anime)

에니메이는 자바스크립트 애니매이션 라이브러리다. 2016년 6월27일 출시됐으며, 공개된 이후 첫 주 동안 6013번 스타가 찍혔다. 에니메이는 가볍고, 유연한게 특징이며, CSS, SVG, DOM 속성, JS 객체와 결합해 사용하기도 쉽다. 에니메이 홈페이지를 방문하고 클릭 몇 번을 해보면 에니메이로 어떤 효과를 넣을 수 있을지 감이 올 것이다. 에니메이는 프랑스에 거주하는 줄리안 가르니에라는 디자이너 겸 개발자가 만들었다. 그의 홈페이지를 방문하면 재밌는 소개글을 볼 수 있으니 참고하면 좋다.

 

9위. 리액트 앱 만들기(create-react-app)

 

리액트 앱 만들기는 페이스북이 배포한 오픈소스 프로젝트다. 리액트는 2013년 사용자 인터페이스를 만들기 위한 자바스크립트 라이브러리이며, 리액트 자체도 깃허브 내에서 큰 인기를 끌고 있다. ‘리액트 앱 만들기’는 따로 환경설정을 신경 쓰지 않고 리액트 앱 결과물을 만들어주는 소스코드다. 2016년 7월22일 출시된 이후 1주일 동안 스타수가 6438번 눌러졌다.

8위. 클립보드JS(Clipboard.js)

클립보드JS는 글씨를 복사하고 붙여넣을 수 있는 기능을 자바스크립트로 쉽게 구현하도록 돕는 기술이다. 크기가 3KB밖에 되지 않고, 플래시나 프레임워크 없이 쉽게 클립보드를 만들어주는 장점이 있다. 제노 로차라는 브라질 출신 개발자가 만든 이 기술은 2015년 11월에 공개됐으며, 출시 후 1주일 동안 6522번 스타가 눌러졌다.

7위 비주얼 스튜디오 코드(Visual Studio Code)


비주얼 스튜디오 코드는 마이크로소프트(MS)가 만든 코드 편집기이자 디버깅 도구다. 기존 IDE ‘비주얼 스튜디오’룰 웹 기반으로 만든 것이라 볼 수 있다. 기술 뒷단에는 일렉트론이 쓰였으며, MS 개발자 행사에서 오픈소스 기술로 변환됐다. 비주얼 스튜디오 코드는 2015년 11월에 출시됐으며, 1주일 동안 스타수는 7847번이었다.

6위. N1

N1은 데스크톱용 e메일 애플리케이션이다. 일렉트론, 플럭스, 리액트 등을 사용해 만들었으며 테마나 플러그인을 추가해 다양한 기능을 구현할 수 있다. 오픈소스 기술이며, 나만의 e메일 클라이언트를 만들 수 있다는 이유로 관심을 받았다. 2015년 10월 공개된 이후 스타수는 8588개가 찍혔다. 나이라스라는 기업이 개발했으며, 기본 기능은 무료로 제공하고, 기업용 기능은 유료로 판매 중이다.

5위. 머티리얼 디자인 라이트(Material Design Lite)


머티리얼 디자인은 구글의 디자인 철학이다. 질감이 느껴지는 표면과 선명한 그래픽 디자인, 직관적인 사용자 경험을 위한 자연스러운 애니메이션을 추구하는 게 특징이다. 머티리얼 디자인 라이트는 단순한 형태의 웹사이트에 머티리얼 디자인 원칙을 쉽게 적용하게 도와주는 코드다. 자바스크립트 프레임워크에 영향을 받지 않으며 다양한 기기, 플랫폼, 웹브라우저 버전을 지원한다. 머티리얼 디자인 라이트 공식 홈페이지에선 구체적인 가이드라인과 템플릿 등도 볼 수 있다. 머티리얼 디자인 라이트는 2015년 7월 공개됐으며, 스타수는 일주일 만에 9609번이 됐다.

4위. 리액트 네이티브 (React Native)

 

리액트 네이티브는 모바일 앱을 만들기 위한 프레임워크다. 페이스북이 만들고 바로 오픈소스 기술로 출시됐다. 리액트가 웹 개발자 혹은 하이브리드 앱 개발자에게 주목받았다면 리액트 네이티브는 모바일 개발자에게 관심을 받고 있다. 리액트 네이티브를 이용하면 안드로이드와 iOS 앱 개발시 동일한 소스코드르 이용할 수 있다. 기존 하이브리드 앱보다 성능이 높고, 각 플랫폼이 지원하는 고유 기능을 이용할 수 있다는 점이 인기 요인이다. 리액트 네이티브는 2015년 3월 출시됐으며, 출시 첫 주에 스타수는 1만976개였다.

3위. 텐서플로우(Tensorflow)

텐서플로우는 구글이 만든 오픈소스 머신러닝 라이브러리다. 구글이 만든 머신러닝 기술은 어떨지 궁금한 개발자들이 텐서플로우를 찾고 있다. 구글은 ‘텐서플로우 서빙’이란 기술도 오픈소스로 공개해 더 많은 개발자들이 쉽게 텐서플로우를 이용할 수 있게 지원하고 있다. 텐서플로우 프로젝트를 이끄는 마이크 슈스터 박사는 지난 4월 한국을 방문해 “머신러닝 생태계의 발전을 위해 텐서플로우를 공개했다”라며 “팀 내부적으로는 소프트웨어 관리와 문서화를 더 잘하기 위해서 오픈소스화 했다”라고 밝혔다. 텐서플로우는 2015년 11월 공개됐으며, 첫 주에 1만1822명 사용자가 스타 버튼을 눌렀다.

2위. 얀(Yarn)

가장 최근에 배포된 오픈소스 프로젝트다. 2016년 10월11일에 공개된 얀은 페이스북, 구글, 틸데가 공동으로 만들었으며, 출시 1주일 만에 1만6천개 스타가 찍힐 만큼 높은 관심을 받았다. 얀은 자바스크립의 의존성을 관리해주는 기술이다. 속도와 안정성, 보안성을 장점을 내세우고 있다.

1위. 스위프트(Swift)

스위프트는 애플이 만든 프로그래밍 언어다. 2014년에 처음 공개됐고, 2015년에 12월3일에 오픈소스 언어로 전환됐다. 깃허브에 스위프트가 올라오자 1주일 만에 2만3097개의 사용자가 스타를 눌렀다. iOS 앱 개발시 사용할 수 있고, 기존 오브젝티브C 언어의 단점을 보완할 수 있다는 이유로 많은 개발자들이 관심을 받았다. 스위프트는 이미 깃허브에서 가장 인기있는 언어 15위 안에 들었으며, 풀 리퀘스트(Pull Request)수정한 브랜치 내용을 기존 버전에서 반영할 수 있도록 깃허브로 보내는 행위를 일컫는다.close 수는 지난해에 비해 262% 올랐다.

 

 

 

 

.

반응형
반응형

[cookbook] Github + Trello 연동하기

 

http://nodeqa.com/nodejs_ref/89

 

 

[cookbook] Github + Trello 연동하기

  • Introduction
  • 준비과정
  • Trello API
  • Setting Service Hooks of Github
  • Git commit & push
  • Conclusion
  • Personal Project
  • 반응형
    반응형

    David: Keep track of your Node dependecies

    David helps keep your Nodejs project dependencies up to date. https://david-dm.org

    david

    Homepage: https://david-dm.org/
    GitHub: https://github.com/alanshaw/david-www

     

    Nodejs based web service that tells you when your project npm dependencies are out of date.

    To use David, your project must include a package.json file in the root of your repository.

    Currently David works with package.json files found in public github repositories only. 

    반응형

    + Recent posts