>>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explic..
우리가 작업하는 다양한 소스코드는 때로는 서로 다른 버전의 cuda 를 사용하기도 합니다. 그리고 물리적으로 한 대의 머신을 공유해서 사용한다고 했을 때 여러 버전의 cuda 를 이용하는 것은 매우 당연한 일이겠습니다. 이번 글에서는 어떻게 그것이 가능한지에 대한 이야기를 짧게 공유합니다. 1. cuda 설치 ( https://developer.nvidia.com/cuda-downloads )링크에 접속해서 cuda 를 다운로드 받습니다. OS 부터 하나씩 선택해나가면 최종적으로 아래와 같은 화면을 볼 수 있습ㄴ다. 이 글이 작성된 시점 기준으로는 cuda 10.1 이 최신버전이라 위에 링크에 접속하면 다음 버전으로 가이드가 됩니다.다운로드 받은 cuda 는 위에 설명에 있는 것처럼 터미널에서 실행해주면..
아래와 같이 tensorflow-gpu 를 설치하였고, pip install tensorflow-gpu==1.9코드상에서 import 를 하려고하니 에러가 발생했습니다. (tensorflow_p36) $ python Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf Traceback (most recent call last): File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3..
지난주에 다녀온 AI with Google 행사의 한박자 늦은 후기를 적어본다. 아니, 후기라고 하기에는 거창하고 참석하지 못한 사람들을 위해 행사장 사진 공유를 통해 행사를 들여다보자. 행사는 3호선 동대입구역에 있는 신라호텔에서 진행되었는데 행사장에는 촬영 나온 미디어 기자들로 가득차 있었다. 아마도 오전 세션은 초대받은 사람들과 기자들만 출입이 가능한 느낌이었고 오후부터는 현장 등록까지 가능하게 여러 세션이 준비 된 느낌. 말하자면 오전은 미디어 홍보를 위한 자리라는 생각이 들었다. 본인은 운좋게 초대장을 구해서 오전부터 참석할 수 있었다.얼추 행사 시작인 10시에 맞춰서 도착했는데 이미 인산인해를 이루고 있었다. 데모 부스와 다과, 커피까지 다양한 먹거리가 준비되어 있었다. 일단 따뜻한 아메리카노..
http://kaldi-asr.org/ 이 글을 읽고 있다는 것은 sample 스크립트 학습을 끝냈다는 이야기인데 일단 축하드립니다. 이번 글에서는 학습시킨 데이터를 기반(은 이미 공개되어 있는 모델셋)으로 demo 를 해볼텐데 kaldi 에 있는 voxforge 에서는 두 가지 방식으로 데모를 지원합니다. 여기에는 1) microphone 의 입력에 따라 실시간으로 음성을 text 로 변환하는 live 모드와 2) 음성파일을 text로 변환하는 simulated 모드가 있습니다.일단 egs/voxforge 로 이동해서 보면 다음과 같이 세 개의 디렉터리가 존재합니다. $ tree -L 1 . ├── gst_demo ├── online_demo └── s5 3 directories, 0 files s5 ..
# TL;DR git remote add upstream ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git git fetch upstream git merge upstream/master # 들어가며GitHub 에서 좋은 프로젝트를 발견했고 유용하게 사용을 하다보면 Contribution 하고 싶은 상황이 생깁니다. 개발자라면 보통 그래요. 이제 Contribution 을 마음먹었으니 프로젝트를 fork 하고 열심히 수정을 합니다. 그리고 Pull Request 를 날리겠죠. 며칠 후에 기분 좋은 메일이 왔습니다. Merged 되었다는 내용이죠 :-)여기까지는 좋습니다. 그리고 시간이 흘러 같은 프로젝트에 또 Contribution 하고 싶은게 생기게 됩니다. 여기서 문제가 생기게 되..
한빛미디어에서 번역된 머신러닝 도서가 출간되었다. 제목부터 심상치 않은데 파이썬으로 배우는 머신러닝의 교과서란다. 춘추전국시대 같은 머신러닝 시장에 당당히 교과서 타이틀을 쟁취할만한지 한빛미디어 나는리뷰어다를 통해 책을 지원 받고 살펴보았다. 책은 보통의 머신러닝 입문서 정도의 두께이고 안에 내용은 쥬피터 노트북의 설치부터 파이썬의 기본적인 활용으로 이어진다. 그리고 4장은 언제든 필요할 때 펼쳐서 볼 수 있도록 머신러닝에 필요한 수학 지식을 차곡차곡 담아놨다. 또한 아래처럼 노트북상에 그래프 표기를 위해 사용하는 matplotlib 설명이 잘 되어 있어서 많은 도움을 받았다. 4장에서는 다양한 수학을 다뤘지만 그렇다고 쉽다는 이야기는 아니다. 미분, 편미분, 편차 등 다양한 개념을 소개하고 공식을 대..
https://conda.io/en/master/ python 을 가상환경으로 사용할 수 있도록 지원하는 프로젝트중 하나인 conda 를 실무에서 빠르게 사용 할 수 있도록 살펴보도록 합니다. ( 또 다른 가상환경 프로젝트인 virtualenv 는 이쪽을 참고하세요 ) 우선 우리가 사용하는 OS 에 맞게 다음 링크에서 아나콘다를 다운로드 받도록 합니다 https://www.anaconda.com/download/ 설치가 끝나면 터미널에서 conda 명령어를 통해서 모든 조작이 가능한데 필수적인 옵션을 하나씩 살펴보도록 합시다. ( 실행 화면 등이 포함되어 있기 때문에 PC 버전에서 최적화 되어 있습니다 ) # 버전 확인 : 사용하고 있는 conda 패키지의 버전을 확인한다.$ conda --version..
http://kaldi-asr.org/ 이번 글에는 Kaldi 에서 제공하는 샘플 스크립트를 통해 기본적인 테스트를 진행하는 과정을 살펴봅니다. 테스트를 진행하기 전에 잠깐 Kaldi 의 디렉터리 구조를 살펴볼 필요가 있는데요, 소스코드를 내려받고 살펴보면 아래와 같은 구조를 확인할 수 있습니다. $ tree -L 1 . ├── COPYING ├── INSTALL ├── README.md ├── egs/ ├── misc/ ├── scripts/ ├── src/ ├── tools/ └── windows/ 6 directories, 3 files 6개의 디렉터리와 3개의 파일로 구성되어 있군요. 파일은 설치 과정이 메모되어 있는 INSTALL 과 프로젝트 소개가 있는 README.md, 그리고 카피라이트인 ..
http://kaldi-asr.org/Kaldi Speech Recognition Toolkit 의 동작에 대한 기본 테스트를 MacOS 에서 진행한 경험을 기록 합니다. 보통의 오픈소스를 살펴보면 READMD.md 와 같은 파일을 두고 그 안에서 설치 가이드를 제공하고 있는데 Kaldi 는 README 에서 그런 언급을 하지 않고 대신 INSTALL ( plain-text ) 파일을 제공합니다. 그럼 이제 INSTALL 파일을 확인하고 설치를 진행해보도록 합니다.우선 GitHub 을 통해 공개되어 있는 Kaldi 소스코드를 내려 받습니다. git clone https://github.com/kaldi-asr/kaldi.git 소스 디렉터리 홈에 있는 INSTALL 파일을 열어보면 다음과 같은 내용이 쓰..
2019년 1월 21일부터 티스토리에 HTTPS 가 일괄 강제적용 된다는 소식을 들었는데 뒤늦게 관리하는 블로그의 설정을 바꾸게 됐다. ( 관련공지 : 더 안전한 티스토리를 위해 - SSL 적용 완료 ) 그리고 블로그에 별로 신경을 못쓰고 있었는데 어느날 예전글을 검색해야 할 일이 있어서 카테고리 버튼을 누르는순간 해당 메뉴가 먹통이라는 것을 깨달았다. 그 외에 관리자 페이지도 먹통. 혹시나해서 개발자 도구를 열어보니 아래와 같은 에러가 잔뜩 확인되었다.해당 내용은 블로그 도메인은 HTTPS 를 사용하고 있는데 내부적으로 HTTP 를 사용하는 곳이 있고, 보안상 취약하여 해당 메뉴가 블럭되고 있다는 것. 해결 방법은 어렵지 않다. 스킨의 HTML 에서 사용하는 HTTP -> HTTPS 로만 변경해주면 된..
한빛미디어 리뷰어에 선정되어 읽어보게 된 "나의 첫 안드로이드", 딱 내 수준에 맞는 책이다. 그동안 서버 자체를 개발해왔으며 서비스 개발쪽으로 입문한 이후에는 백엔드 개발을 업으로 삼았는데 이 책은 클라이언트(앱) 개발자를 이해할 수 있는 좋은 기회이자, 스스로 앱을 만들어 보고 싶은 의욕이 충만해지는 계기가 되었다. 일단 그동안의 커리어답게 자바와는 담을 쌓고 살아왔다. 1장에 있는 그림부터 자바를 먼저 공부하라고... 불행중에 다행인것은 근래에 Scala 로 개발을 조금 해서인지 자바에 대한 부담은 그렇게 크지 않다. 모바일도 iOS 만 사용을 해왔던터라 안드로이드의 버전 이야기에는 항상 꿀먹은 벙어리로 있었는데 간지러운 부분을 잘 긁어준다. 안드로이드는 알파벳의 첫 글자에 매칭되는 디저트의 이..
2018년을 한 마디로 표현하면 "커리어 전환" 이라고 할 수 있겠다. 임베디드에서 C 를 주력으로 사용하던 2017년 뒤로하고 Node.js 를 거쳐 Scala 로. 클라우드는 GCP 를 시작으로 AWS 에 입문할 수 있었다. 1분기. 안녕 여기어때?작년 2017년에 이런저런 이유로 몇 개월 일을 쉬고 올해 1월 10일, 위드이노베이션에 입사하게됐다. 사람들에게는 “여기어때”라는 종합숙박을 서비스하는 앱으로 더 많이 알려져 있는 곳. 혹은 신동엽. 아무튼, 이 회사를 입사하면서 개발 인생에 큰 변화를 맞게된다. 웹 개발은 다른 세상 이야기던 내가 vue.js 를 만지작거릴 수 있는 기회를 얻었으며 메인 언어라고는 C밖에 모르던 임베디드쟁이가 node.js 를 만났다. 그리고 IDC 세상에 갇혀 마냥 클..
slack 에는 다양한 투표 기능이 있는데 대표적으로 simple-poll, polly 등이 있다. 하지만 이런 투표기능이 있는 명령어가 무조건적으로 무료는 아니다. polly 같은 경우에는 한달간 베타 버전처럼 사용할 수 있고 그 이후에는 비용을 지불해야 하며, simple-poll 은 일정 횟수 이상을 초과해서 사용하게 되면 비지니스로 업그레이드 해서 사용할 것을 권고한다.아래는 simple-poll 로부터 발생되는 비지니스 업그레이드 권고 메시지.warning: Remember to upgrade to Simple Poll Business before December 11thAs one of Simple Poll's most active workspaces, we were delighted to g..
개인 프로젝트를 고민하다가 예전부터 미루어 왔던 AI 스피커 만들기를 시작합니다. 프로젝트의 요구사항은 간단합니다. 사용자의 음성을 인식하고 의도를 파악한 후에 상황에 맞는 답변을 스피커로 출력합니다. 가벼운 요구사항이지만 내부적으로는 아래와 같은 기술을 필요로 합니다.- 사용자의 음성을 인식 ( Speech to Text ) - 변환된 Text 를 구문 분석 ( Natural Language Processing ) - 분석된 내용을 토대로 답변을 음성 출력 ( Text to Speech )일단 당장은 머신러닝에 대한 배경지식이 부족하기 때문에 세 가지 모두 쉬운 과제는 아닙니다. 그래서 고민끝에 우선 Speech to Text( STT), Text to Speech( TTS) 는 Google Cloud..
리액트와 함께 인기를 더해가는 vue.js 사용을 위한 기본 설치 과정을 설명하도록 한다. 우선 기본이 되는 vue 설치를 위해서는 아래와 같이 npm 명령어를 사용하도록 한다. $ npm install vue npm WARN saveError ENOENT: no such file or directory, open '/Users/caley/package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open '/Users/caley/package.json' npm WARN caley No descriptio..
남들 다 사용하는 CI/CD 대세 jenkins 를 docker 버전으로 설치해보자. docker 버전으로 설치하는 것에 별 다른건 없다. 서버에서 docker 를 사용할 수 있다는 가정하에 아래 명령어 두 줄이면 끝이다. $ docker pull jenkins/jenkins $ docker run -p 8080:8080 jenkins/jenkins:ltsjenkins 가 최초에 올라오면서 여러가지를 초기화 하고 아래처럼 초기 비밀번호를 콘솔에 출력해준다. 이 비밀번호를 복사하고 GUI 를 실행하도록 하자. ( localhost:8080 ) 아래와 같은 화면에서 비밀번호를 입력할 수 있다. 혹시 콘솔로그를 확인하지 못했다면 /var/jenkins_home/secrets/initialAdminPasswor..
한빛미디어에서 엑셀 관련해서 현업에서 사용되는 많은 스킬을 한방에 익힐 수 있는 좋은 책이 발간되었다. 기본적으로 책 내용 전체가 칼라인 것이 책을 수월하게 읽을 수 있도록 돕는다. 우리가 마주칠 수 있는 여러가지 상황에 대한 예제가 이 책의 핵심이 될 수 있다. 책의 저자는 엑셀 강의 경험이 풍부하고 지식이 깊은데 그런 많은 지식이 이 책에 그대로 녹아있어서 읽는내내 감탄을 하게된다. 이전에도 엑셀에 대한 강의나 책은 많았지만 다양한 버전중에 어떤 버전에 사용 가능한 스킬인지 모두 명시가 되어있다는 점이 이 책의 독보적인 장점이겠다. 내 경우에는 이것저것 엑셀로 정리해야 할 게 많은데 제대로 다루지 못해 아쉬운 점이 많았었다. 하지만 이 책을 만나고 한계를 살짝 극복한 느낌을 받게되었다. 사실 ..
오랜만에 큰 기대 없이 기술서적이 아닌 책 중에 골랐는데 목차부터 홀딱 반하게 만드는 책. 모던 스타트업. 책의 내용은 표지에 있는 것처럼 “팀 생산성을 높여주는 21가지 도구와 서비스”를 소개한다. 예를들면 슬랙, 지라, 깃헙, G스위트, 포스트맨, 제플린, 엔서블, 클라우드 등등. 현대의 스타트업이 기본으로 깔고가는 기술(도구)스택이라는 것을 알 수 있다. 아마 이 글을 보는 대부분의 지인들은 이미 대부분 알고 있는 내용일테지만 그걸 누군가 또 잘 정리해줬다면 어찌 읽어보지 않을 수 있겠나. 이 책이 바로 그렇게 잘 정리된 책이다. 한편 요즘 스타트업이 사용하는 생산성 도구 트렌드가 궁금하신 엔지니어에게도 분명 큰 도움이 될 수 있겠다. 트렌드를 알고 싶으시다면 레츠기릿. 😎 😎 책 부록으로 4 분의..
logrotate 는 특정 파일을 일정 시점, 크기 등 지정된 조건에 따라서 백업해주는 명령어이다. 주로 시간이 지남에 따라 한 없이 커질 수 있는 로그파일을 logrotate 를 통해 주기적으로 백업하는데 이용된다. 예를들어 system.log 라는 파일이 매일 1 GB 씩 내용이 누적된다고 하면 한달이면 벌써 30 GB 가 되버리고 그 파일 자체를 핸들링하는게 매우 어렵게 된다 ( 파일 안에서 특정 단어를 검색한다던지 ). 이럴 때 logrotate 를 통해 매일 지정된 시간에 system.log.1.gz, system.log.2.gz, system.log.3.gz... 으로 자동 백업하거나 파일 크기가 일정 사이즈 이상 되었을 때 분할 할 수 있다.우선 logrotate 는 심플한 소개가 달려있다...
- Total
- Today
- Yesterday