클라우드 107

Apache Beam (Dataflow)를 이용하여, 이미지 파일을 tfrecord로 컨버팅 하기

Apache Beam (Dataflow)를 이용하여, 이미지 파일을 tfrecord로 컨버팅 하기 조대협 (http://bcho.tistory.com) 개요텐서플로우 학습에 있어서 데이타 포맷은 학습의 성능을 결정 짓는 중요한 요인중의 하나이다. 특히 이미지 파일의 경우 이미지 목록과 이미지 파일이 분리되어 있어서 텐서플로우에서 학습시 이미지 목록을 읽으면서, 거기에 있는 이미지 파일을 매번 읽어야 하기 때문에, 코딩이 다소 지저분해지고,IO 성능이 떨어질 수 있다텐서플로우에서는 이러한 학습 데이타를 쉽게 읽을 수 있도록 tfrecord (http://bcho.tistory.com/1190)라는 파일 포맷을 지원한다. 이 글에서는 이미지 데이타를 읽어서 tfrecord 로 컨버팅하는 방법을 설명하며, 분..

HBase와 구글의 빅테이블 #2 - 설치 및 기본 사용 방법

HBase와 구글의 빅테이블#2 설치와 기본 사용 방법 조대협 (http://bcho.tistory.com)HBase 설치HBase를 개발 또는 운영환경에서 사용하기 위해서는 직접 HBase를 다운 받아서 설치하거나 또는 구글 클라우드의 빅테이블을 사용하면 된다 각각 설치 방법은 다음과 같다. 로컬 환경에 HBase 설치하기설치 방법은 https://hbase.apache.org/book.html#quickstart 를 참고하도록 한다. 운영 환경용은 주키퍼등 여러 환경 설치가 뒤따라야 하기 때문에 여기서는 자세하게 설명하지 않는다. $JAVA_HOME 환경 변수를 설정한 후에, HBase를 다운로드 받고, 압축을 푼다.다음 ./bin/start-hbase.sh 을 수행하면 Hbase를 가동할 수 있다...

HBase와 구글의 빅테이블 #1 - 아키텍쳐

HBase 와 구글의 빅테이블#1 아키텍쳐 조대협 (http://bcho.tistory.com)HBaseHBase 는 아파치 오픈소스 NoSQL 솔루션으로 구글의 빅테이블 (https://research.google.com/archive/bigtable.html) 논문을 기반으로 개발되었다.Key/Value Store 기반의 NoSQL이며, 대용량 데이타를 빠르게 처리할 수 있는 기능을 가지고 있다. 데이타 모델HBase는 컬럼 패밀리라는 데이타 모델을 사용하는데, 대략적인 구조를 보면 다음과 같다.각 행은 하나의 로우키(rowkey)를 가지고 있다. 이 키는 RDBMS의 프라이머리 키와 같은 키라고 보면 된다. 각각의 행에는 컬럼이 정의되어 있는데, RDBMS 테이블의 일반 컬럼과 같은 개념이라고 보면..

구글 스택드라이버를 이용한 애플리케이션 로그 모니터링

구글 스택드라이버를 이용한 애플리케이션 로그 모니터링조대협 (http://bcho.tistory.com)스택드라이버 소개스택드라이버는 구글 클라우드에서 서비스로 제공되는 시스템 로그 및 모니터링 시스템이다. CPU,메모리사용량과 같은 하드웨어에 대한 정보에서 부터 웹서버나 OS와 같은 미들웨어 및 애플리케이션 로그를 수집, 검색 및 분석할 수 있으며, 여러 오픈 소스 (MongoDB, CouchDB, Redis - https://cloud.google.com/monitoring/agent/plugins/ )등에 대한 모니터링도 가능하다. 구글 클라우드 뿐 아니라, AWS에 대한 모니터링을 통합으로 지원하는 등, 상당히 많은 기능을 가지고 있다.이 글에서는 스택드라이버를 이용하여 애플리케이션 로그를 수집하..

Tensorflow Object Detection API를 이용한 물체 인식 #2-동물 사진을 학습 시켜보자

Object Detection API에 애완동물 사진을 학습 시켜 보자 조대협 (http://bcho.tistory.com) Object Detection API에 이번에는 애완동물 사진 데이타를 학습시켜 보도록 한다.애완 동물 학습 데이타의 원본은 Oxford-IIIT Pets lives 로 http://www.robots.ox.ac.uk/~vgg/data/pets/ 에 있다. 약 37개의 클래스에, 클래스당 200개 정도의 이미지를 가지고 있다. 이번 글에서는 이 애완동물 데이타를 다운 받아서, Object Detection API에 학습 시키는 것까지 진행을 한다.데이타를 다운로드 받은 후, Object Detection API에 학습 시키기 위해서, 데이타 포맷을 TFRecord 형태로 변환한 후..

얼굴 인식 모델을 만들어보자 #6 - CloudML을 이용하여 예측하기

CloudML을 이용하여 예측하기조대협 (http://bcho.tistory.com) 지난글 (http://bcho.tistory.com/1189) 에서 학습된 모델을 *.pb 파일 포맷으로 Export 하였다. 그러면 이 Export 된 모델을 이용하여 예측 (prediction)을 하는 방법에 대해서 알아보겠다. 앞글에서도 언급했듯이, 예측은 Google CloudML을 이용한다.전체 코드를 https://github.com/bwcho75/facerecognition/blob/master/CloudML%20Version/face_recog_model/%2528wwoo%2529%2BML%2BEngine%2Bprediction.ipynb 를 참고하기 바란다. Export된 모델을 CloudML에 배포하기..

얼굴 인식 모델을 만들어보자 #4 -클라우드를 이용하여 학습 시키기

얼굴 인식 모델을 만들어보자 #4 클라우드를 이용하여 학습 시키기(머신러닝 학습 및 예측 시스템의 운영환경화) 조대협 (http://bcho.tistory.com) 앞에서 모델을 만들고 학습도 다했다. 이제, 이 모델을 실제 운영 환경에서 운영할 수 있는 스케일로 포팅을 하고자 한다. 로컬 환경 대비 실제 운영 환경으로 확장할때 고려해야 하는 사항은 대규모 학습 데이타를 저장할 수 있는 공간대규모 학습 데이타를 전처리하기 위한 병렬 처리 환경 이 내용은 이미 http://bcho.tistory.com/1177에서 다루었다. 대규모 학습 데이타를 빠르게 학습 시킬 수 있는 컴퓨팅 파워학습된 데이타를 이용한 대규모 예측 서비스를 할 수 있는 기능 위의 요건을 만족하면서 텐서플로우로 환경을 올리는 방법은 여러..

연예인 얼굴 인식 모델을 만들어보자 - #1. 학습 데이타 준비하기

연예인 얼굴 인식 서비스를 만들어보자 #1 - 데이타 준비하기 CNN 에 대한 이론 공부와 텐서 플로우에 대한 기본 이해를 끝내서 실제로 모델을 만들어보기로 하였다.CNN을 이용한 이미지 인식중 대중적인 주제로 얼굴 인식 (Face recognition)을 주제로 잡아서, 이 모델을 만들기로 하고 아직 실력이 미흡하여 호주팀에서 일하고 있는 동료인 Win woo 라는 동료에게 모델과 튜토리얼 개발을 부탁하였다. 이제 부터 연재하는 연예인 얼굴 인식 서비스는 Win woo 가 만든 코드를 기반으로 하여 설명한다. (코드 원본 주소 : https://github.com/wwoo/tf_face ) 얼굴 데이타를 구할 수 있는곳먼저 얼굴 인식 모델을 만들려면, 학습을 시킬 충분한 데이타가 있어야 한다. 사람 얼..

클라우드에 최적화된 하둡 배포 아키텍쳐 생각하기

클러스터 상에서 하둡 배포 아키텍쳐 조대협 (http://bcho.tistory.com) 오늘 빅데이타 관련 교육을 받다가 클라우드 상에서 하둡 클러스터 활용에 대한 영감을 받은 부분이 있어서 정리해보고자 한다. 하둡의 경우에는 On-prem 환경에 적절하게 디자인이 된 오픈 소스라서, 이걸 클라우드에서 사용할 경우에도 on-prem에서 사용하는 형태와 유사하게 사용하는 경우가 많다. 일종의 습관 또는 관성이라고 해야 하나? 인프라가 바뀌면 그 장점에 맞는 아키텍쳐를 선택해야 하는데, 이 부분을 놓치고 있지 않았나 싶다. Job별 클러스터를 생성하는 아키텍쳐job을 수행하는 방법을 보면, 일반적으로 On-Prem에서 사용하는 방법은 하나의 하둡 클러스터에 Job을 실행하고 Job이 끝나면 다음 Job을 ..

구글 클라우드의 서버리스 서비스 Cloud Functions

Google Cloud Function 조대협 (http://bcho.tistory.com)기본 개념구글 클라우드 펑션은 서버리스 아키텍쳐를 구현하기 위한 구글 클라우드 서비스이다. 아마존 웹서비스의 람다와 같은 기능이라고 보면 된다. 이벤트가 발생하면, 이벤트에 따라서, 코드를 수행해주는 형태인데, 이벤트의 종류는 다음과 같다.Pub/Sub 메세지 큐에서 들어오는 메세지Firebase 모바일 SDK에 의해서 발생되는 이벤트Google Cloud Storage 서비스에 의해서 파일이 생성,수정,삭데 되었을때마지막으로 HTTP로 들어오는 요청 (REST API) 개발환경프로그래밍 언어는 node.js 6.9.1 버전을 기반으로 되어 있으며, node.js의 package.json을 이용하여 왠만한 의존성 ..