프로그래밍 Programming
우분투 18.04 에 아파치 스파크 설치하기 Install Apache Spark on Ubuntu 19.04/18.04 & Debian 10/9/8
2019. 11. 4.Ubuntu 19.04/18.04 그리고 Debian 9/8/10 에 Apache Spark 를 설치하는 방법에 대해 알아봅니다. 설치에 앞서 시스템 패키지를 업데이트합니다. (AnnaM) founder@hilbert:~$ sudo apt -y upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done (AnnaM) founder@hilbert:~$ sudo apt -y upgrade Step 1: Install Java Apache Spark 는 자바를 필요로 합니다. 어떤 버전의 자바가 설치되어 있는지 java -version 으로 확인해..
Plotly를 이용한 데이터 시각화 Data visualization with Plotly
2019. 10. 26.Data visualization는 데이터로부터 정보와 가치를 추출해내는 데 중요한 역할을 한다. 파이썬은 이러한 목적에 부합하는 다양한 라이브러리를 제공하고 있는데, 여기서는 Plotly 에 대해 살펴본다. Plotly 는 온라인 데이터 분석과 시각화 툴을 개발하는 회사로, pip install plotly 를 통해 간단하게 설치할 수 있다. 그리고 파이썬 노트북에서 임포트해오면 된다. 아래는 아나콘다 환경에서 설치하는 예이다. (AnnaM) founder@hilbert:~$ conda install -c plotly plotly Collecting package metadata: done Solving environment: done ## Package Plan ## environment locati..
tqdm 을 사용하여 파이썬/판다 Progress Bars 만들기
2019. 10. 24.Introducing tqdm tqdm 는 즉석에서 progress bar 를 생성해주고, 함수나 반복문의 TTC (Time To Completion) 를 예측하는 파이썬 패키지를 말한다. from tqdm import tqdm_notebook list = [] for x in tqdm_notebook(range(10000)): list.append(x**x) pip 를 이용해서 다음과 같이 간단히 설치가 가능하다. (AnnaM) founder@hilbert:~$ pip install tqdm Collecting tqdm Downloading https://files.pythonhosted.org/packages/e1/c1/bc1dba38b48f4ae3c4428aea669c5e27bd5a7642a74c8..
고급 주피터 노트북 사용팁 Advanced Jupyter Notebooks Tutorial (Part 1)
2019. 10. 24.Shell Commands 느낌표(exclamation mark)로 시작되는 코드 셀 내의 라인은 셀 커맨드로 실행된다. 이는 데이터셋을 비롯한 파일을 다룰 때나 파이썬 패키지를 관리할 때 유용하다. 간단한 예를 보자. !echo Hello World!! Hello World!! pip freeze | grep pandas pandas==0.25.1 Note: you may need to restart the kernel to use updated packages. 그리고 $ 심볼을 활용하여 파이썬 변수로도 활용가능하다. message = 'This is nitfy' !echo $message This is nitfy Basic Magics 유닉스 명령어와 상당 부분 유사해보이지만, 매직 명령어는 모두 ..
아파치 웹서버 버추얼 호스팅 설정 How To Set Up Virtual Hosts in the Apache Web Server on Ubuntu 18.04
2019. 10. 21.아파치 웹서버를 사용하는 경우, 하나 이상의 도메인을 호스팅하기 위해 버추얼 호스트(Nginx 의 server blocks 과 유사)를 설정할 수 있다. 도메인 설정과 관련해서 더욱 자세한 내용은 introduction to DigitalOcean DNS 을 참조하기 바란다. 1. antilibrary.org 라는 도메인 이름으로 디렉토리를 생성한다. mkdir -p 상위경로도 함께 생성하라는 의미이다. (parabellum) founder@hilbert:~$ sudo mkdir -p /var/www/antilibrary.org/public_html 로그 파일이 저장될 디렉토리도 생성 (parabellum) founder@hilbert:~$ sudo mkdir /var/www/antilibrary.org..
아파치 삭제 후 재설치 apache2.service is not active, cannot reload.
2019. 10. 18.아래와 같이 아파치 서비스가 제대로 작동하지 않는 경우 아파치를 삭제하고 재설치하는 방법을 알아보자. 다음의 순서대로 진행하면 된다. (base) founder@hilbert:/etc/nginx/sites-available$ sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: failed (Result: exit-code) since Fr..
커스텀 ML 툴을 만들어주는 가장 빠른 방법 Streamlit 앱 소개 Turn Python Scripts into Beautiful ML Tools
2019. 10. 12.커스텀 ML 툴을 만들어주는 가장 빠른 방법 중 하나인 Streamlit 앱에 대해서 알아보자. 먼저 전통적인 ML 엔지니어의 작업 플로우와 Streamlit 을 이용한 플로우를 비교해보자. 아래는 기존의 앱 빌딩 플로우이다. 위의 방법도 물론 훌륭하다. 하지만 새로운 기능이 필요하다면, 그리고 툴 팀이 10개 이상의 서로 다른 프로젝트를 서포팅하고 있어 업데이트에 약 2달 정도 소요될 것입니다라고 말하는 바람에, 다시 주피터 노트북을 통해 실행한 다음, 이 내용을 파이썬 스크립트로 옮긴다. HTTP request, HTML, callback 등의 요소를 고려해가면서 Flask 앱 등을 작성한다. 구동해보고 부족한 기능이 있으면 다시 위의 과정을 반복한다고 생각해보자. 이러한 부분에서 어떻게 파이썬 스크..
텐서플로우 임포팅 경고 메시지 synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'
2019. 9. 27.텐서플로우 설치 후 다음과 같은 메시지가 뜨는 경우 (AnnaM) founder@hilbert:~$ python Python 3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> >>> >>> >>> import tensorflow as tf /home/founder/anaconda3/envs/AnnaM/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) ..
10줄짜리 파이썬 코드로 사진 속 자동차 수 카운트하기 Count Number of Cars in Less Than 10 Lines of Code Using Python
2019. 9. 26.10줄짜리 파이썬 코드로 간단히 사진 속의 차량 대수를 카운트 해보자. 먼저 아래의 라이브러리가 설치되어 있어야 한다. 설치 이전이라면 각각의 링크를 참고해 설치하도록 한다. opencv-python cvlib matplotlib tensorflow keras TensorFlow An open source machine learning library for research and production. www.tensorflow.org Home - Keras Documentation Keras: The Python Deep Learning library You have just found Keras. Keras is a high-level neural networks API, written in Pytho..
오픈소스 컴퓨터 비전 라이브러리 cvlib 설치
2019. 9. 24.오픈소스 컴퓨터 비전 라이브러리 cvlib 을 설치해보자. https://pypi.org/project/cvlib/ cvlib A high level, easy to use, open source computer vision library for python pypi.org 다음과 같이 설치할 수 있다. (lindy) founder@casey:~$ pip install cvlib Collecting cvlib Downloading https://files.pythonhosted.org/packages/ee/f8/86bbd3187ae6741f01f541ee88ee1fbac398f4248b9b327fd497358b4ef1/cvlib-0.2.2.tar.gz (10.0MB) |███████████████████..
우분투에 opencv-python 설치하기 Install OpenCV-Python in Ubuntu 18.04
2019. 9. 24.opencv-python 라이브러리를 Ubuntu 18.04 아나콘다 환경에 설치해보자. (lindy) founder@casey:~$ pip install opencv-python Collecting opencv-python Downloading https://files.pythonhosted.org/packages/44/35/6db0fa2e644922533ddc 2a3c41d1a86dabefce89d9db85ec31dcc69dc2e3/opencv_python-4.1.1.26-cp37-cp37m-manyl inux1_x86_64.whl (28.7MB) |████████████████████████████████| 28.7MB 32.4MB/s Requirement already satisfied: nump..
파이썬 리스트 Python Lists and List Manipulation
2019. 9. 24.파이썬 리스트의 특징 가변적 다양한 타입 포함가능 순차적 접근 (순서나 내용이 바뀔 때 유용) 동일한 값 중복해서 넣을 수 있음 이하 사용할 예제는 다음과 같음 >>> mylist = [‘a’,’b’,’c’,’w’,’d’,’e’,’f’,’g’,’h’,’i’,’w’] >>> mytuple = (‘x’,’y’,’z’) 리스트의 생성 >>> mylist = [] >>> mylist = list( ) 리스트로의 변환 >>> list(‘word’) ['w', 'o', 'r', 'd'] >>> text = ‘We strongly encourage maintainers of third-party Python projects to test with 3.8 during the beta phase and report is..
Dynalist - best outlining app for your best work Help center 소개
2019. 8. 3.workflowy https://workflowy.com/ 를 지난 달까지 사용하다 이번 달 들어 dynalist https://dynalist.io/ 로 옮겨탔습니다. 한 달 정도 workflowy 를 사용해보니 유용한 앱이라는 생각은 들었습니다. 무료 버전은 쓸 수 있는 목록에 제한이 있어 유료로 사용하기로 마음먹은 상황에서 돈을 더 주더라도 괜찮은 걸 선택해야겠다는 생각이 들었습니다. 그래서 workflowy 외에 어떤 것이 있는지 찾아보던 중 dynalist 를 알게 되었습니다. 일단 써봐야 알겠지만 한 눈에 보기에도 workflowy 보다는 풍부한 기능을 가진 것으로 보였습니다. 물론 월사용료도 그만큼 더 비싸긴했지만요. 다음과 같이 가입을 합니다. 구글 계정을 통해서도 간편하게 가입이 가능합니..
아나콘다 환경에서 주피터 노트북 ModuleNotFoundError: No module named 'ccxt'
2019. 6. 21.아나콘다 가상환경에서 ccxt 패키지를 설치하였으나 주피터 노트북에서 아래와 같이 해당 모듈을 찾을 수 없다고 나오는 경우의 처리방법에 대해 알아보자. import ccxt print(ccxt.exchanges) --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) in () ----> 1 import ccxt 2 print(ccxt.exchanges) ModuleNotFoundError: No module named 'ccxt' 하지만 아래에서 보는 바와 같이 ccxt 1.18.766 버전이 설치되어 있음을 알 수 있다. (l..
오라클 SQL 자주 쓰이는 숫자 관련 함수 ROUND
2019. 6. 17.자주 쓰이는 숫자 관련 함수 중 하나가 ROUND 이다. ROUND 숫자 함수는 제공된 값을 주어진 자리 수까지 반올림합니다. ROUND--(--source_number--,--precision--) 다음은 ROUND 함수를 이용하여 반올림하는 예제이다. select ROUND(7534.1238, 2), ROUND(99672.8591, 2) FROM dual; "ROUND(7534.1238,2)""ROUND(99672.8591,2)" 7534.12 99672.86 ROUND 함수는 2개의 파라메터를 갖는다. 이 중 하나는 필수 아이템으로 반올림 대상이 되는 값인 source_number 이다. 나머지 하나는 정밀도를 나타내는 파라메터인 precision으로, 반올림의 결과 양수의 경우 소수점 우측 몇 자..
워드프레스 관리자 로그인 오류 Redirect loop when trying to login to /wp-admin/
2019. 6. 16.워드프레스 설치형 사이트에서 관리자로 로그인한 후 다음의 현상이 나타나는 경우가 있다. 화면 상단의 Admin Bar가 노출되지 않는다 또는 mysite.com/wp-admin 경로를 통해 관리 페이지로 이동하고자 했으나 반복해서 mysite.com 페이지로 리다이렉트된다 이 경우 다음 순서대로 하나씩 진행해본다. 로컬 브라우저의 쿠키 삭제 전체 플러그인 비활성화 - /wp-content/plugins/ 디렉토리를 plugins_OLD 로 변경한다 sudo mv plugins plugins_OLD 기본 테마로 변경 /wp-content/themes/ 디렉토리로 이동하여 현재 테마 디렉토리 이름을 theme_OLD 와 같이 변경 .htaccess 파일 삭제 - .htaccess_OLD 와 같이 이 파일의 ..
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
2019. 4. 26.Tensorflow 2.0 환경에서 다음과 같은 에러가 발생하는 경우 AttributeError: module 'tensorflow' has no attribute 'get_default_graph' (cooke) founder@casey:~/mandart/glass$ python run_keras_server.py Using TensorFlow backend. * Loading Keras model and Flask starting server...please wait until server has fully started Traceback (most recent call last): File "run_keras_server.py", line 82, in load_model() File "run_ker..
ML을 활용한 스팸 SMS 적발시스템 Flask 로구 현하기 MLDevelop a NLP Model in Python & Deploy It with Flask
2019. 4. 23.Develop a NLP Model in Python & Deploy It with Flask, Step by Step Flask API, Document Classification, Spam Filter ML을 활용하여 스팸 SMS 텍스트 메시지를 적발하는 시스템을 만들어보자. ML 시스템의 워크 플로우는 다음과 같다. Train offline -> Make model available as a service -> Predict online. 분류기는 스팸과 스팸이 아닌 메시지를 가지고 오프라인으로 훈련을 하게 된다. 훈련된 모델은 서버 사용자에게 서비스 형식으로 배포된다. https://cdn-images-1.medium.com/max/1080/1*QverR-xExd4UvfLh3Iq79w.png 모델..
터미널세션 녹화 및 공유기 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..