태그 보관물: Python

New Jupyter Environment: Colaboratory

구글이 회사 내부에서 사용하고 있던 주피터 노트북의 커스텀 버전인 Colaboratory를 공개하였습니다. Colaboratory는 연구와 교육의 목적으로 개발되었다고 합니다. https://colab.research.google.com에 접속하면 샘플 노트북이 로드되는데요. 주피터 커널이 연결되어 있지 않은 상태입니다. 커널을 연결하기 위해서 권한을 요청하면 하루 정도 지나서 메일로 승인이 되었다는 안내를 받을 수 있습니다.

Colab에서 노트북을 생성한 후에 구글 드라이브에 저장을 할 수가 있습니다. 또한 구글 드라이브에서 새 문서 버튼을 통해 Colab 노트북을 직접 만들 수도 있습니다. 또 로컬 컴퓨터에 있는 주피터 노트북을 업로드해서 다른 사람과 공유할 수도 있습니다. 막다운markdown과 라텍LaTex도 물론 지원됩니다. 또 좀 더 편리한 텍스트 셀을 제공하고 있습니다.

스크린샷 2017-10-26 오전 11.40.12

Colab 노트북의 최대 크기는 20M까지입니다. Python 2.7만 지원하고 R이나 Scala는 아직 지원하고 있지 않습니다. 재미있는 것은 대부분의 파이썬의 과학 패키지는 최신 버전을 유지하고 있는데 텐서플로와 Scikit-Learn의 버전이 좀 뒤쳐져 있네요. 하지만 스터디나 튜토리얼 세션 등에는 유용하게 사용될 수 있을 것 같습니다. 🙂

스크린샷 2017-10-26 오전 10.58.27

SciPy 2017

파이썬 과학 컴퓨팅 컨퍼런스인 SciPy 2017이 텍사스주 오스틴에서 지난 10~16일에 열렸습니다. 올해에도 풍성한 토크튜토리얼 동영상이 유투브에 공개되었습니다. 이 중에 눈에 띄는 몇 개를 골라 보았습니다.

이 외에도 다양한 주제에 대한 여러 동영상이 많이 올라와 있습니다. 전체 리스트를 확인해 보세요.

‘파이썬 라이브러리를 활용한 머신러닝’ 출간

b6119391002_lscikit-learn의 코어 개발자이자 배포 관리자인 안드레아스 뮐러Andreas Mueller와 매쉬어블의 데이터 과학자인 세라 가이도Sarah Guido가 쓴 ‘Introduction to Machine Learning with Python‘를 번역한 ‘파이썬 라이브러리를 활용한 머신러닝‘을 출간하였습니다.

출간 직전에 원서가 새로 릴리즈되어서 한바탕 소동을 벌이기는 등 이런 저런 일들이 오랜 작업 기간동안 생겼던 것 같습니다. 추운 겨울에 시작한 일을 한 여름이 되어서야 내놓게 되었네요. 책은 출간이 새로운 시작인 것 같습니다. 에러타나 궁금한 점 등 어떤 이야기도 괜찮습니다. 도서 페이지에 있는 양식을 통해 자유롭게 보내 주세요.

그리고 혹, 서점에 가시면 잘 보이는 곳으로 옮겨놔 주세요! 🙂

(업데이트) 번역서의 1장, 2장 전체를 블로그에 공개할 예정입니다. 공개를 허락해 주신 한빛미디어에 깊이 감사드립니다. 원고를 정리해서 올릴려면 1주일 정도 걸릴 것 같습니다. 😀

PyCon 2017

스크린샷 2017-05-22 오후 12.01.28

지난 주 캘리포니아 구글 마운틴뷰에서 구글 IO 2017이 열렸습니다. 많은 사람들의 관심이 구글 IO에 집중될 때 바로 그 위 오레건 주에서는 파이콘 2017이 같이 시작됐습니다. ^^ 파이콘이 구글 IO처럼 라이브 스트림되지는 못하지만 벌써 유투브에 튜토리얼과 토크 동영상이 올라왔습니다! 파이콘 유투브 채널에서 데이터 사이언스와 관련있는 것을 추려 보았습니다. (파이콘 코리아 2017도 8월에 열립니다)

Python 3.6 Out!

지난 주에 파이썬 3.6 버전이 릴리즈되었습니다. 아나콘다 패키지들도 대부분 파이썬 3.6에 맞춰져 준비되었으니 파이썬 3.6 버전을 써볼 수 있을 것 같습니다. 다만 텐서플로우나 아나콘다에서 제공하지 않는 라이브러리들은 아직 3.6 버전과 호환되지 않을 수 있습니다. 그러므로 파이썬 3.6 을 테스트하려면 콘다 환경을 따로 만들어서 사용해 보는 것이 좋습니다.

$conda create -n python36 python=3.6
$source activate python36

파이썬 3.6에서 눈에 띠는 변경사항을 정리하였습니다.

1. 포맷 문자열

f 로 시작하는 문자열은 중괄호 안에 대치할 변수 이름을 넣을 수 있습니다. 문자열 평가는 한번만 일어 납니다. 변수 이름뒤에 이전과 동일하게 포맷팅 옵션을 쓸 수 있습니다.

>>> name = "철수"
>>> s = f"내 이름은 {name}입니다."
>>> s
'내 이름은 철수입니다.'
>>> name = "영희"
>>> s
'내 이름은 철수입니다.'
>>> val = 1.23456789
>>> f"{val:.3f}"
'1.235'

2. 숫자 밑줄 표현

가독성을 위해 숫자를 사용할 때 밑줄 문자를 써서 천 단위를 표시할 수 있습니다.

>>> 1_000_000_000
1000000000
>>> 0x_FF_FF_FF
4294967295

3. Path 오브젝트 활용

pathlib.Path 오브젝트를 open 함수에 직접 넣을 수 있고 os 와 os.path 하위의 함수들에서도 사용할 수 있습니다.

>>> import pathlib
>>> with open(pathlib.Path("README")) as f:
... 
>>> import os.path
>>> os.path.splitext(pathlib.Path("some_file.txt"))
('some_file', '.txt')
>>> os.path.join("/a/b", pathlib.Path("c"))
'/a/b/c'
>>> import os
>>> os.fspath(pathlib.Path("some_file.txt"))
'some_file.txt'

4. **kwargs 파라미터 순서 유지

**kwargs 로 넘어온 딕셔너리가 입력 파라메타의 순서대로 소팅됩니다.

>>> def myfunc(a, b, **kwargs):
        print(kwargs)
>>> myfunc(1,2, t=1, y=2, u=3, i=4)
{'t': 1, 'y': 2, 'u': 3, 'i': 4}
>>> myfunc(1,2, i=1, u=2, y=3, t=4)
{'i': 1, 'u': 2, 'y': 3, 't': 4}

5. secrete 모듈 추가

암호 생성에 필요한 난수를 위해 random 이나 os.urandom 대신 권장되는 secrete 모듈이 추가되었습니다.

>>> import secrets
>>> secrets.randbelow(100)
>>> 41
>>> secrets.token_hex(16)
>>> '3d7975470f64cbca981c07209c0cbcc4'
>>> secrets.token_urlsafe(16)
>>> 'ZLIS3TVPH301LwuPzwFEjg'

6. http.client 가 HTTP chunked 인코딩을 지원합니다.

7. json.loads, json.load 함수가 문자열 외에 bytes, bytearray 도 지원합니다.

8. random.choices 함수가 추가 되어 한개 이상의 아이템을 무작위로 선택해 리턴할 수 있습니다.

이외에도 많은 사항이 변경되었습니다. 주목할 만한 내용이 발견되면 업데이트 하겠습니다.

SciPy 2016 & Free eBooks

텍사스 오스틴에서 열린 SciPy2016의 스케줄이 끝나기가 무섭게 컨퍼런스와 튜토리얼 영상이 유투브에 올라왔습니다. 정말 놀라운 속도 입니다. 머신 러닝 관련 세션도 여러개가 눈에 띄입니다.

SciPy2016에 맞추어 오라일리에서 몇몇 신간 도서들을 무료로 배포하고 있습니다. 회원가입 하시고 http://www.oreilly.com/pub/get/scipy 에서 원하는 책을 선택하시면 이메일로 다운받을 수 있는 링크를 보내 줍니다. 다만 바로 메일을 보내 주지 않고 2일 정도 걸린다고 하네요. 😦

그래도 무료로 주는 게 어딘가요. 이 이벤트는 8월 9일까지 진행한다고 합니다.

scipy-free-ebook

(업데이트) 여러권을 신청했는데 메일이 와서 보니 마지막에 신청했던 것이 제공되네요. 결국 이틀에 한권씩 신청하라는 거죠. 귀찮지만 기간은 충분하니 원하는 책들은 다 받아 볼 수 있겠습니다.

(업데이트) 이상훈님이 댓글로 알려주신 것과 같이 한 계정당 한권만 보내 주네요. 저는 더 받으려고 계정을 추가로 만들었습니다. 🙂

Top 19 Free Python eBooks

아티클 추천 서비스를 해주는 Myridge에서 19개의 파이썬 무료 이북 리스트를 선정했습니다. 모두 아마존에서 높은 평점을 받는 좋은 책인 것은 물론 무료로 읽을 수 있으므로 더할 나위 없습니다.

초보자

  1. Python Programming: An Introduction to Computer Science 2nd Edition (Zohn Zelle)
  2. Python Crash Course: A Hands-On, Project-Based Introduction to Programming (Eric Matthes)
  3. Python Pocket Reference, 5th Edition (Mark Lutz)
  4. Python Practice Book: free ebook to learn practical programming with Python (Anand Chitipothu)
  5. Learning Python 5th Edition (updated for 3.3 and 2.7) (Mark Lutz)
  6. Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (3rd Edition) (Zed A. Shaw)

숙련자

  1. Python Cookbook: free ebook for advanced programmers (David Beazley)
  2. Test-Driven Development with Python (Harry Percival)
  3. High Performance Python: Practical Performant Programming for Humans 1st Edition (Micha Gorelick & Ian Ozsvald)

데이터 & 머신러닝

  1. Think Complexity: Complexity Science and Computational Modeling 1st Edition (Allen B. Downey)
  2. Python for Data Analysis — Agile Tools for Real World Data(Pandas, NumPy, and Ipython) (Wes McKinney)
  3. Mastering Python for Data Science (Samir Madhavan) (사파리 온라인에 가입해야만 읽을 수 있어 무료라고 보긴 어렵습니다)
  4. Natural Language Processing with Python 1st Edition (Steven Bird, Ewan Klein & Edward Loper)

게임

Making_Games_with_Python_and_Pygame Invent_Your_Own_Games_with_Python

  1. Making Games with Python & Pygame (Al Sweigart)
  2. Invent Your Own Computer Games with Python (Al Sweigart)

그외

  1. Automate the Boring Stuff with Python: Practical Programming for Total Beginners (Al Sweigart)
  2. Python for Biologists: A complete programming course for beginners (Dr. Martin Jones)
  3. Programming the Raspberry Pi: Getting Started with Python 1st Edition (Simon Monk)
  4. Hacking Secret Ciphers with Python: A beginner’s guide to cryptography and computer programming with Python (Al Sweigart)

TensorFlow를 이용한 구글 머신러닝 유투브 강의

지난 3월부터 유투브에 텐서플로우와 파이썬을 이용한 머신러닝 강의를 구글이 만들어서 시리즈로 올리고 있습니다. 현재는 4편까지 올라와 있습니다. 각 영상은 10분 미만으로 짧아서 바쁜 와중에도 잠깐씩 볼 수 있는 수준입니다.

아래는 2,3,4 편 주소입니다.

여하간 머신러닝을 알리기 위한 구글의 노력은 대단합니다. Jeff Dean구글 IO에서 언급한 것에서 느낄 수 있듯이 알고리즘이나 모델은 몇몇 연구자들이 만들더라도 이를 가져다 쓰는 사람은 개발자 저변으로 확대하고 싶은 것이 구글의 목표일 것입니다. 좀 더 체계적인 커리큘럼을 원하시면 유다시티(Udacity)의 딥러닝 강의를 추천해 드립니다.

(업데이트) 추가된 동영상 리스트입니다.

(업데이트) ‘Machine Learning Recipes with Josh Gordon‘ 란 이름으로 플레이 리스트가 만들어졌습니다.

Deep Learning with Python

deeplearningwithpython-400Keras는 텐서플로우와 Theano를 이용하여 딥러닝 모델을 구축할 수 있는 래퍼(Wrapper) 라이브러리 입니다. Keras, Theano, TensorFlow 를 이용한 딥러닝 책이 새로 출간되었습니다. 이 책의 저자는 machinelearningmastery.com 을 운영하고 있는 Jason Brownlee 입니다.

아마도 이 책은 온라인으로 출간된 ‘First Contact with TensorFlow‘ 다음으로 나온 두번째 텐서플로우 책이 아닌가 싶습니다.

170여 페이지로 구성되어 있으며 PDF 버전으로 구매하실 수 있습니다. 가격은 $37 입니다. 가능하면 조만간 구입하여 읽어보고 리뷰를 올리도록 하겠습니다. 아래는 책에 실린 14개의 레슨과 7개의 프로젝트 목록입니다.

Lessons

Lesson 01: Theano 라이브러리 소개
Lesson 02: TensorFlow 라이브러리 소개
Lesson 03: Keras 라이브러리 소개
Lesson 04: 멀티레이어 퍼셉트론 속성 코스
Lesson 05: Keras를 사용한 첫번째 뉴럴 네트워크
Lesson 06: 딥러닝 모델 성능 평가
Lesson 07: scikit-learn과 함께 Keras 모델 사용하기
Lesson 08: 모델 직렬화(Serialization)
Lesson 09: 훈련과정에서 최적 모델 찾기
Lesson 10: 훈련과정에서 모델 변화 이해하기
Lesson 11: 드롭아웃(Dropout) 정규화(Regularization)로 오퍼피팅 피하기
Lesson 12: 학습속도 스케줄링으로 성능 강화
Lesson 13: 콘볼루션(Convolution) 뉴럴 네트워크 속성 코스
Lesson 14: 이미지 증강(Augmentation)을 이용하여 모델 성능 향상

Projects

Project 01: 클라우드를 사용하여 저렴하게 GPU에서 대규모 모델 개발
Project 02: 꽃의 종(Species)에 대한 다중(Multiclass) 분류
Project 03: 수중음파 탐지 데이터를 이용한 이진 분류
Project 04: 보스톤 주택 가격 회귀분석
Project 05: 손글씨 숫자 인식
Project 06: 사진속의 물체 인식
Project 07: 영화 리뷰를 사용한 감성(Sentiment) 예측

ML with Python

PythonproGramming.netSentDex 의 창업자이자 열혈 파이썬 개발자인 Harrison Kinsley 가 유투브에 새로운 동영상 강좌 커리큘럼 ‘Machine Learning with Python‘ 을 연재하고 있습니다. 4월 부터 시작한 이 시리즈는 대략 이삼일을 넘지 않고 하나씩 추가되고 있습니다. 뉴럴 네트워크, 딥러닝 까지 강의가 진행될 예정입니다. 기왕이면 텐서플로우를 이용해서 뉴럴 네트워크 강좌가 만들어지면 좋겠습니다. 🙂

Harrison Kinsley 는 이십대 중반이라고 프로필을 소개하고 있는데요. 창업해서 운영하고 있는 회사만 몇개나 되네요. 사업 규모의 크기를 떠나서 열정과 노력이 정말 대단한 것 같습니다.