프로그래밍 Programming
터미널세션 녹화 및 공유기 asciinema
2019. 4. 20.asciinema 는 터미널 세션을 녹화하고 웹상으로 공유할 수 있게 해주는 오픈소스 솔루션이다. 간단히 녹화가 가능하고, 플레이어를 멈추고 터미널 상의 코드를 복사 및 붙여넣기가 가능하다. 손쉽게 블로그 등의 포스팅에 플레이어를 넣을 수도 있다. Installation pip 를 이용해 다음과 같이 설치할 수 있다. https://pypi.org/project/asciinema/ (cooke) founder@casey:~$ pip install asciinema Collecting asciinema Downloading https://files.pythonhosted.org/packages/a7/71/771c859795e02c71c187546f34f7535487b97425bc1dad1e5f6ad2651..
리눅스 디렉토리 크기 구하기 How to Get the Size of a Directory in Linux
2019. 4. 4.ls 명령어를 이용하여 디렉토리 콘텐츠를 리스팅하는 경우, 디렉토리의 크기가 항상 4096 bytes (4 KB) 임을 확인할 수 있다. 아래를 보자. /var$ ls -al total 56 drwxr-xr-x 14 root root 4096 Oct 27 05:19 . drwxr-xr-x 25 root root 4096 Apr 4 06:37 .. drwxr-xr-x 2 root root 4096 Apr 4 07:36 backups drwxr-xr-x 13 root root 4096 Nov 9 07:00 cache drwxrwxrwt 2 root root 4096 Nov 18 06:25 crash drwxr-xr-x 47 root root 4096 Jan 19 09:10 lib drwxrwsr-x 2 ro..
ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad'
2019. 3. 16.다음과 같은 ImportError 가 발생하는 경우ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' import numpy as np import time import sys import os import random from skimage import io import pandas as pd from matplotlib import pyplot as plt from shutil import copyfile import cv2 import tensorflow as tf --------------------------------------------------------------------------- ImportE..
아나콘다 패키지 삭제 conda remove
2019. 3. 15.아나콘다 환경에서 설치된 패키지를 제거하는 방법은 다음과 같습니다.아래 설치된 cx_oracle 패키지를 제거해보겠습니다.(pyenv) founder@merrow:~/pyenv$ conda list # packages in environment at /home/founder/anaconda3/envs/pyenv: # # Name Version Build Channel ca-certificates 2019.1.23 0 anaconda certifi 2018.11.29 py27_0 anaconda cx_oracle 7.0.0 py27h7b6447c_0 anaconda 아래와 같이 conda remove 명령으로 패키지 제거가 가능합니다. 형식은 다음과 같습니다. 간단하게 이 정도만 기억하시면 될 것 같은데요..
서프라이즈 라이브러리를 활용한 추천시스템 구축 및 검증 Building and Testing Recommender Systems With Surprise, Step-By-Step
2019. 3. 2.source https://www.pexels.com/photo/person-doing-thumbs-up-193821/ 파이썬과 서프라이즈 라이브러리, 그리고 협업 필터링 (Collaborative Filtering) 을 활용한 추천 엔진 구축하기 추천시스템에 접근하는 2가지 방법은 collaborative filtering 과 content-based recommendations 이다. 이 포스팅에서는 collaborative filtering 접근방법에 초점을 맞춰 진행한다. 간단히 말해 사용자간의 유사성에 기반하여 등급을 예측하는 방법이다.추천 시스템 알고리즘 개발을 위한 북크로싱 데이터와 Nicolas Hug에 의해 개발된 Surprise 라이브러리를 가지고 진행한다. 먼저 필요한 라이브러리를 임..
주피터랩 살펴보기 Jupyter Lab: Evolution of the Jupyter Notebook
2019. 2. 25.Jupyter Lab: Evolution of the Jupyter Notebook An overview of JupyterLab, the next generation of the Jupyter Notebook. 데이터에 따르면 깃허브에만도 300만개 이상의 Jupyter Notebook이 사용되고 있다고 한다. 비단 이런 데이터를 빌리지 않고도 Jupyter Notebook의 인기는 짐작 가능하다. Jupyter Notebook은 이미 다양한 장점을 가지고 있지만 여기에 멈추지 않았고, 더욱 진화된 JupyterLab 이 나왔다. 그리고 JupyterLab 이 결국에는 Jupyter Notebook 의 자리를 대신할 것으로 기대된다. Installation conda, pip, pipenv 등을 사용해..
Rasa Stack 과 파이썬을 활용한 슬랙 챗봇 만들기 (2) A guide to creating a chatbot with Rasa stack and Python
2019. 2. 22.A guide to creating a chatbot with Rasa stack and Python. 2편에서는 앞서 만든 봇을 슬랙에 배포하는 실습을 진행해본다. 진행에 앞서 1편을 미리 읽어보고 넘어오길 권해드린다.Rasa Stack 과 파이썬을 활용한 슬랙 챗봇 만들기 (1) A guide to creating a chatbot with Rasa stack and PythonRasa Installations1편과는 달리 여기서는 최신 버전의 Rasa Core 를 설치할 것이다. 아나콘다 등을 활용하여 가상환경을 만든 뒤 실습을 진행하길 권해드린다. 우분투 18.04 아나콘다 설치하기 How To Install the Anaconda Python Distribution on Ubuntu 18.04아..
Rasa Stack 과 파이썬을 활용한 슬랙 챗봇 만들기 (1) A guide to creating a chatbot with Rasa stack and Python
2019. 2. 22.A guide to creating a chatbot with Rasa stack and Python. 대화형 AI 시스템은 인간생태계의 필수불가결한 요소가 되었다. 이미 잘 알려져있듯이 Apple의 Siri, Amazon의 Alexa and Microsoft의 Cortana 등이 있다. r머신 러닝 기반의 AI 어시스턴트인 Rasa를 만들어보자. Objective본 포스팅에서는 사용자의 기분을 체크해서 힘을 북돋우는 적절한 액션을 취하는 ‘Zoe’ 라고 불리는 챗봇을 만들어 본다. 그리고 다음 포스팅에서는 이를 Slack에 배포해본다. 다음 스크린샷과 같이 구현해볼 것이다. https://cdn-images-1.medium.com/max/800/1*YCBEujcXGf4MFOT02my5hQ.png Req..
핀터레스트 위젯 빌더 Pintereest Widget builder
2019. 2. 16.웹사이트에 핀터레스트 버튼 또는 위젯을 넣어보자.핀 버튼은 앞서 살펴봤고, 여기서는 팔로우, 보드, 프로필 관련 버튼을 넣는 방법을 살펴보자.2019/02/16 - [핀터레스트 Pinterest] - 웹사이트, 블로그에 핀터레스트 핀 넣기 먼저 팔로우 버튼이다. 핀터레스트 URL만 넣으면 아래와 같이 간단히 코드가 생성된다. 생성된 코드를 필요한 위치에 넣는다. 앞서도 말했듯이 print.js 코드는 태그 앞에 반드시 들어가 있어야 한다. 버튼을 놓고 싶은 위치에 코드를 넣으면 다음과 같이 팔로우 버튼이 생성된 것을 확인할 수 있다. 다음 보드나 프로필 역시 URL 만 입력하고 코드가 생성되고 위와 마찬가지로 해당 코드를 적절한 위치에 넣으면 끝난다.프로필의 경우 보드의 너비, 핀의 크기 등은 코드에 포..
웹사이트, 블로그에 핀터레스트 핀 넣기
2019. 2. 16.웹사이트에 핀터레스트 핀 넣기 여러분의 사이트에 Pin 을 노출켜주는 핀 위젯을 만들어보자.먼저, print.js 스크립트가 페이지에 포함되어 있는지부터 확인해야 한다. 페이지당 한 번만 넣으면 된다. 간단하게는 아래와 같이 직접 불러올 수 있다. 태그 상단에 아래 내용을 넣는다. 핀이 생겼음을 알 수 있다. https://developers.pinterest.com/docs/widgets/getting-started/?https://developers.pinterest.com/docs/widgets/pin-widget/?
딥러닝 학습상황을 제어하는 텔레그램 봇 만들기 Telegram bot to monitor and control deep learning experiments
2019. 2. 16.Telegram bot to monitor and control deep learning experiments Dependencies 다음의 패키지가 설치되어 있어야 함python-telegram-botKeras (선택사항, 케라스 콜백 사용시)matplotlib (선택사항, convergence plots 전송시) 다음의 환경에서 테스트함Python 3.6.6Tensorflow 1.12.0Keras 2.2.4Ubuntu 18.04 (tfKeras) founder@hilbert:~/tfKeras/telegrad$ python3 -V Python 3.6.6 (tfKeras) founder@hilbert:~/tfKeras/telegrad$ python -c 'import keras; print(keras._..
텔레그램 봇 만들기 Your first Telegram Bot
2019. 2. 15.파이썬으로 간단한 텔레그램 봇을 만들어보자.먼저 텔레그램 앱을 실행시켜 대화방에서 BotFather 검색한다.대화창에 /newbot 을 통해 봇을 생성하고, 봇의 이름을 정한다.봇의 계정명을 정한다. 계정명은 bot 으로 끝나야 한다. 성공적으로 계정 생성이 되었다. 이제 봇에게 본인의 아이디를 알려줘 나에게 메시지를 보낼 수 있게 한다.방금 만들었던 봇을 검색한다. 파이썬 텔레그램 패키지를 설치한다.(tfKeras) founder@hilbert:~$ pip install python-telegram-bot --upgrade Collecting python-telegram-bot Downloading https://files.pythonhosted.org/packages/84/6c/47932a4041ee..
우분투 18.04에 워드프레스 설치하기 How To Install WordPress with LEMP on Ubuntu 18.04
2019. 2. 14.여기서는 우분투 18.04 서버 + LEMP stack (Linux, Nginx, MySQL, and PHP) 기반으로 워드프레스를 설치하는 방법을 알아본다. Prerequisites본격적인 진행에 앞서 다음의 준비를 마쳐야 한다. - sudo 사용자 생성 - LEMP 스택 설치 : 이미 앞선 게시물에서 별도로 다룬바 있다 2018/10/27 - [리눅스 Linux] - 우분투 18.04 에 LEMP 스택 설치하기 How To Install Linux, Nginx, MySQL, PHP (LEMP stack) on Ubuntu 18.04- SSL 을 통한 사이트 보안도메인이 있는 경우 https://www.digitalocean.com/community/tutorials/how-to-secure-nginx..
구글 FACETS를 활용한 머신러닝 데이터셋 시각화 Visualising Machine Learning Datasets with Google’s FACETS
2019. 2. 9.https://cdn-images-1.medium.com/max/800/1*3tUB6KRfE-FapwbH4Lz0Vg.png Facets은 PAIR(People + AI Research) 라는 계획의 일환으로 구글에서 내놓은 오픈소스 시각화툴이다. 머신러닝 데이터셋에 대한 이해와 분석을 돕는 도구로, 2개의 시각화 도구로 구성된다. Facets Overview 이름에서 짐작할 수 있듯이 이 시각화 도구는 전체 데이터셋의 개요와 데이터 각각의 특징 면면에 대한 감을 제공한다. 개요에서는 각각의 특징에 대한 통계를 제공하고 훈련 및 검증 데이터셋을 비교한다. Facets Dive 더 많은 정보를 얻기 위해 개별 특징에 대해 상세히 살펴볼 수 있고, 대규모의 데이터도 대화형 콘솔을 통해 한 번에 살펴볼 수 있다..
트럼프 대통령 연설문 자동 요약하기 Automatically Summarize Trump’s State of the Union Address
2019. 2. 9.트럼프 대통령 연설문 자동 요약하기Text Rank, Latent Semantic Analysis, Gensim, Sumy, NLTK자동 텍스트 요약은 짧고 간결하지만 논리정연하게 긴 문서를 만드는 과정이다. NLP 분야에서 가장 흥미로운 주제 중 하나다. 본 포스팅에서는 트럼프 대통령의 지난 2월 6일자 연설문을 가지고 진행한다. 약 82분간 진행된 전체 내용을 듣거나 읽기 부담스러운 경우 앞으로 진행할 자동 요약은 매우 유용한 아이템이 될 것이다. 원문의 내용을 최대한 잘 뽑아내길 바라며 시작해보자. TextRank with NLTKTextRank 는 비지도 텍스트 요약 테크닉으로 페이지랭크 알고리즘을 문장 랭킹에 적용한 것이다. 프로젝트에 NLTK 를 사용할 때는 일반적으로 다음과 같은 순서를 따르..
우분투 아나콘다서버에 플라스크 앱 배포하기 Deploy Flask apps using Anaconda on Ubuntu Server
2019. 1. 21.Ubuntu 18.04에 Flask 마이크로웹프레임워크를 이용하여 파이썬 어플리케이션을 배포하는 방법에 대해 알아본다. Install Flask먼저 플라스크를 설치한다. 12345678910111213141516171819202122232425262728293031323334353637383940(tfKeras) founder@hilbert:~$ conda install -c anaconda flaskSolving environment: done ## Package Plan ## environment location: /home/founder/anaconda3/envs/tfKeras added / updated specs: - flask The following packages will be downlo..
Conda 가상 환경으로 PyTorch 설치하기
2019. 1. 19.https://pytorch.org/get-started/locally/ 자신의 환경에 맞게 선택하면 명령어를 제공해준다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485(base) founder@hilbert:~$ conda install pytorch-cpu torchvision-cpu -c pytorchSolving environment: done ## Package Plan ## environment location: /home/founder/anaconda3..
사전훈련된 VGG 모델을 이용하여 사진 속 이미지 분류하기 How to Use The Pre-Trained VGG Model to Classify Objects in Photographs
2019. 1. 18.이제 합성곱 신경망은 이미지 분류 - 물체에 대한 사진이 주어지면, 해당 물체가 1,000개의 카테고리 중 어디에 속하는지를 보여주는 것 - 등의 컴퓨터 비전 작업에서는 인간못지 않은 성능을 보여주고 있다. 여기서는 VGG 합성곱신경망을 이용하여 위와 같은 이미지 분류를 해보도록 하자. 아래와 같이 4개의 파트로 나눠서 다루도록 한다. Load the VGG Model in KerasVGG 모델은 케라스 딥러닝 라이브러리에서 직접 로드가능하다. 케라스는 미리 훈련된 모델을 로딩하여 사용가능하도록 Applications interface 를 제공하고 있다.해당 인터페이스를 활용하면 Oxford 그룹이 제공하는 사전에 훈련된 가중치를 사용하여 VGG 모델을 생성할 수 있다. 이를 출발점으로 삼거나 아니면 바..
케라스 CNN을 활용한 비행기 이미지 분류하기 Airplane Image Classification using a Keras CNN
2018. 12. 31.Airplane Image Classification using a Keras CNN Data Acquisition여기서 사용될 데이터셋은 Kaggle 에서 가져온다. 해당 데이터셋은 rhammel 라는 사용자가 업로드한 것으로, 32,000개의 라벨링된 비행기의 위성 사진이다. 먼저 여기로 이동하여 “planesnet.zip” 을 다운로드 받는다. 다운로드받은 파일의 압축을 풀어보면, “0__20140723_181317_0905__-122.14328662_37.697282118.png” 와 같은 이름으로 구성된 32,000개의 이미지 파일을 확인할 수 있을 것이다. Data Preprocessing앞선 데이터를 ML 알고리즘에 활용가능하게 다듬는 작업을 데이터 프로세싱이라고 한다. 다운로드받은 이미지를..
CNN, 케라스, 텐서플로우 벡엔드를 이용한 이미지 인식 분류기 만들기 Create your first Image Recognition Classifier using CNN, Keras and Tensorflow backend
2018. 12. 28.Create your first Image Recognition Classifier using CNN, Keras and Tensorflow backend Getting Started — Dog or Cat본 튜토리얼에서 일단 주어진 이미지가 개인지 고양이인지 구분하는 이미지 분류기를 만들고자 한다. 그리고 추후 더 큰 규모로 확장해보자. Tools And Technologies본 튜토리얼 진행을 위해서는 다음의 도구들이 필요하다. 아래는 Ubuntu 18.04 환경에서 구현되었다.Anaconda 아나콘다는 데이터터 사이언스와 머신러닝 관련 어플리케이션 제작 관련 패키지 관리 및 배포를 도와주는 오픈 소스 프로그램이다. 설치는 다음을 참조한다.https://www.anaconda.com/download/..
파이썬 3.6 아나콘다 PIL 설치하기 ModuleNotFoundError: No module named 'PIL' 과 UnsatisfiableError
2018. 12. 24.우분투 환경의 파이썬 3.6 버전의 경우 PIL 패키지 설치시 아래와 같이 UnsatisfiableError 를 반환한다.1234567891011121314151617ModuleNotFoundError Traceback (most recent call last) in 1 from IPython.display import display----> 2 from PIL import image 3 4 classifier.fit_generator( 5 training_set, ModuleNotFoundError: No module named 'PIL' (tfKeras) founder@hilbert:~$ conda install -c anaconda pilSolving environment: failed Unsati..
Deep Learning Tutorial for Beginners - 2. Logistic Regression
2018. 12. 20.Logistic Regression이진 분류에 대해 이야기 할 때, 즉, 0과 1 이라는 결과물에 대해서 말할 때 가장 먼저 떠오르는 것은 로지스틱 회귀이다. 하지만 딥러닝에 있어 로지스틱 회귀를 어떻게 활용할 수 있는가? 사실 로지스틱 회귀는 심플한 신경망이다. 그런데 신경망과 딥러닝은 사실 같은 것이다. 인공신경망을 다룰 때 "deep" 이라는 용어에 대해 상세히 설명할 기회가 있을 것이다. 이에 앞서 로지스틱 회귀를 이해하기 위해 computation graph 에 대해 알아보자. Computation graph 일종의 수학적 표현의 시각화 정도라고 생각하면 될 것이다. 예를 들어, 의 경우 다음과 같이 표현할 수 있다. http://image.ibb.co/hWn6Lx/d.jpg 그러면 로지스틱 회..
Deep Learning Tutorial for Beginners - 1. Overview the Data Set
2018. 12. 18.# Overview the Data Set본 튜토리얼에서는 수화 데이터를 사용한다. 데이터셋 다운로드와 상세한 데이터셋에 대한 설명은 다음 링크를 참조한다. 데이터셋 다운로드 https://www.kaggle.com/ardamavi/sign-language-digits-dataset데이터셋 개요 https://www.kaggle.com/ardamavi/sign-language-digits-dataset/home아래 코드를 실행시키면 input 디렉토리에 있는 파일 디렉토리가 호출된다.1234567import numpy as np # linear algebraimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)import matplo..
케라스 딥러닝 이진분류 Classifying movie reviews: a binary classification example
2018. 12. 15.케라스 버전 확인import keras keras.__version__ Using TensorFlow backend. Out[1]:'2.2.4' IMDB 데이터셋영화 리뷰 텍스트를 기반으로 해당 리뷰를 긍정과 부정으로 분류하는 방법, 즉 이진 분류 방법에 대해 알아본다. IMDB 데이터셋은 훈련데이터, 테스트데이터 각각 25,000개로 구성 (긍정리뷰 50%, 부정리뷰 50%)같은 데이터를 가지고 모델을 훈련하고 테스트해서는 안되기 때문에 훈련 데이터와 테스트 데이터를 나누게 됨훈련 데이터에서의 작동이 새로운 데이터에서의 작동을 보장해주지는 않음 (훈련 데이터의 레이블은 이미 알고 있기 때문에 이를 예측하는 모델은 필요없음)데이터셋을 로드한다.from keras.datasets import imdb (t..
아나콘다 matplotlib 설치
2018. 12. 15.아나콘다 matplotlib 설치12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394(tfKeras) founder@hilbert:~/tfKeras$ conda install -c conda-forge matplotlibSolving environment: done ## Package Plan ## environment location: /home/founder/anaconda3/envs/tfKeras added / updated specs..
딥러닝 툴 설치하기 Anaconda, Jupyter Notebook, TensorFlow and Keras for Deep Learning
2018. 12. 15.딥러닝 학습을 위해 필요한 아나콘다, 주피터 노트북, 텐서플로우와 케라스를 설치해보자. Downlaod Anaconda먼저 아나콘다를 설치한다. 아나콘다 가상환경에 데이터 사이언스와 딥러닝에 필요한 패키지를 설치한다. 아나콘다를 사용하면 특정 프로젝트에 필요한 특정 버전의 패키지 설치 등 버전 충돌에 대한 우려를 덜 수 있는 장점이 있다. 다음과 같이 현재 기준으로 텐서플로우나 케라스가 지원하는 파이썬 3.6 버전을 갖춘 환경을 설치해보자.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354founder@hilbert:~$ conda create --name tfKeras pyth..
Computer Vision (4) scikit-image 이미지 처리 기본
2018. 12. 9.scikit-image 는 이미지 처리를 위한 파이썬 라이브러리, 엔터프라이즈급 응용프로그램을 작성하는데 적합하다. 우분투의 경우 다음과 같이 설치한다. 123456789101112(venv) fuchsia@fuchsia:~$ pip install -U scikit-imageInstalling collected packages: toolz, dask, cloudpickle, scikit-image Found existing installation: scikit-image 0.13.1 Not uninstalling scikit-image at /usr/lib/python3/dist-packages, outside environment /home/fuchsia/venv Cant uninstall 'sciki..
Computer Vision (3) 이미지 변환 및 향상
2018. 12. 8.기하학적 변환Pillow 를 통해 크기 변환, 회전, 뒤집기와 같은 여러 가지 유형의 이미지 변환이 가능하다. 크기 변환 - 새로운 크기를 인수로 담는 resize() 함수를 이용한다.resize_img = img.resize((500,300)) imshow(np.array(resize_img)) Out[12]: 회전 - 이미지의 회전 처리된 복사본을 반환한다. 센터를 기준으로 시계반대 방향(counter clockwise)으로 회전시킨 이미지를 반환한다.rotate_img = img.rotate(90) imshow(np.array(rotate_img)) Out[13]: 이미지 향상이미지의 대비, 밝기, 색상 밸런스, 선명도 변경 등의 작업을 포함한다. 이미지 밝기 변환 - enhance() 함수는 실수..
Computer Vision (2) 색상공간(그레이스케일, RGB, HSV)
2018. 12. 8.색상공간은 이미지를 저장하는 다양한 형태를 의미하는 용어로, 흔히 접하는 그레이스케일, RGB, CMYK 등이 이에 해당한다. 그리고 색상공간의 각 값을 색상채널이라고 부른다. 그레이스케일이미지의 각 픽셀 값은 0 (검은색) ~255 (흰색) 사이의 값을 가진다. 엄밀히 말해서 흑백이미지와는 다르다. 흑백 이미지에서 각 픽셀은 0 혹은 255 만을 가지며 그 사이에는 값이 없다. RGB빨간, 녹색, 파란색 채널의 3가지 값의 조합으로 나타낸다. 검은색 = (0, 0, 0)빨간색 = (255, 0, 0)녹색 = (0, 255, 0)파란색 = (0, 0, 255)흰색 = (255, 255, 255) HSV 색조hue, 채도saturation, 값valueRGB 값을 원통에 투영하는 원통형 좌표계. https..
Computer Vision (1) 이미지 읽기, 자르기, 저장
2018. 12. 8.이미지 처리의 핵심색, 픽셀 간의 상호 관계, 물체 배치, 다른 미세한 세부 항목과 같은 이미지의 다른 속성을 이용하여 에지, 물체, 윤곽선 등 이미지 특징이라고 부르는 유용한 정보를 추출하는 것 이미지 읽기여기서는 이미지 처리 라이브러리 중 Pillow 를 사용한다. 설치 등에 관련된 내용은 아래 링크를 참조한다. https://pillow.readthedocs.io/en/5.3.x/from matplotlib.pyplot import imshow import numpy as np from PIL import Image %matplotlib inline img = Image.open('legus.png', 'r') imshow(np.asarray(img)) Out[1]: 이미지 자르기원본 이미지에서 특..