일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 정리
- 라즈베리파이
- FLASK
- sw
- Object Detection
- Android
- C언어
- 디버그모드
- detection
- MySQL
- php
- 머신러닝
- 고급C
- IMAGE
- 데이터
- 지능형
- Linux
- 안드로이드
- Machine Learning
- RapidCheck
- tensorflow
- Video
- Python
- keras
- 영상분석
- 가상환경
- Raspberry
- tracking
- Deep Learning
- 서버
- Today
- Total
목록 개발 이야기 (57)
건프의 소소한 개발이야기
안녕하세요, 건프입니다. 이번에는 최근에 제가 관심있게 연구하고 있는 Generative Adversarial Network 모델, 속칭 GAN 모델에 대해서 알아보고, 우리에게 친숙한 손글씨 데이터인 MNIST 를 이용해서, 간단히 Code Level 에서의 Implement 를 해보고자 합니다. GAN 모델을 간단하게 설명해보면,- 두개의 모델이 존재합니다.- 하나는 생성기(Generator) 이며, 또 하나는 분류기(Discriminator) 입니다.- 두 모델은 학습하면서 서로에게 영향을 미치면서 고도화 됩니다.- 생성기는 노이즈로부터, 어떠한 결과물을 만들어내는데, 이 결과물은 분류기에 의해서 평가됩니다.- 분류기는 생성기로부터 온 결과물과, 실제 데이터(Real Data) 를 구분해내는 역할을..
안녕하세요, 건프입니다. 손글씨 우편번호 데이터셋 MNIST 를 시작으로, Google 의 Tensorflow Open Source Project 에 힘입어, 모두가 한번쯤은 딥러닝(Deep Learning)을 해보는 시기가 되었는데요. 학교 수업이나 기타 머신러닝 강의들에서 흔히 볼 수 있는 Workflow 과 실제로 프로젝트를 하면서 느꼇던 Workflow 는 조금 큰 차이가 있었습니다.그간 SWMaestro 과정에서 Object Detection & Tracking 프로젝트를 진행하며 느꼈던 Deep Learning Program Development Workflow 를 제 기준으로 정리해보고자 합니다. 이 길을 함께 걸어가고 있을 누군가에게 도움이 될 수 있기를 바랍니다. 일반적으로 우리가 흔히 ..
안녕하세요, 건프입니다. AWS EC2 인스턴스의 종류는 다양하며, 다양한 만큼 그 용도도 다양합니다.EC2 인스턴스의 특징을 이해하고, 적정한 스펙의 적정한 가격으로 최고의 효율을 뽑아내는 능력이 AWS를 이용하는 개발자의 능력이라고 생각하는데요,이는 경험치가 확실히 도움이 됩니다. 그 중 우리 Machine Learning, Deep Learning 을 하는 사람들에게 반가운 유형이 있습니다. 바로 GPU 가속환경을 지원해주는 g2, p2 instance 들이죠. 사실 이들의 가격이 싼편은 아니기 때문에, 이것만 사용하면 딥러닝을 할 수 있다, 고 생각하지는 않습니다. 그만큼 처음 시작하는 사람들을 환경설정하는데 삽질을 많이 할 수 밖에 없으니까요. 다만, 이미 어느정도 환경설정에 익숙해진 사람의 입..
안녕하세요, 건프입니다. Python 을 이용해서 Machine Learning, Deep Learning 작업을 하다보면, 수많은 라이브러리를 필연적으로 사용하게 됩니다.(잘 만들어진 프레임워크를 활용하려고 파이썬을 쓰는거니까요..) 이때, 이종 OS 간, 라이브러리간 버전 충돌(Version Conflict)를 최소화할 수 있도록 도와주는 좋은 프레임워크가 있습니다.바로 아나콘다(Anaconda) 라는 것이죠.https://www.continuum.io/downloads 다음으로는 이 아나콘다를 설치한 뒤, 가상환경(Virtual Env) 를 설치하고, 파이썬 버전을 컨트롤하며이종 버전간 임포트 하는법을 정리합니다. 평소에는 Ubuntu 환경에서 주로 하지만,최근에 진행했던 프로젝트가 반드시 Wind..
안녕하세요, 건프입니다. 데이터를 모으는 크롤링 작업을 할 때, 주식데이터와 같은 시계열 데이터를 다룰 때, 날짜객체들을 계속 다뤄야 하는데기억력이 부족한 저는 사용할 때 마다 검색하는게 한심해서 아에 정리를 하고 넘어가려고 합니다. 누군가에게 도움이 될 정리가 되기를 바랍니다. 1. 일단 저는 time 객체와 datetime 객체만 사용합니다.import time from datetime import datetime, timedelta timestamp_now = time.time() # timestamp 형식으로 현재 시간 알아오기 print(timestamp_now) datetime_now = datetime.now() # datetime 형식으로 현재 시간 알아오기 print(datetime_no..
안녕하세요, 건프입니다. AWS에서 원격서버로 데이터를 계속 크롤링하면서 모으다보니까매번 FTP 나 파일질라 같은 걸로 가져와서 작업하기가 너무 귀찮아서 Dropbox 크게 하나 사놓은것이 있어, 이걸 스크립트(Script)로 자동업로드(Auto Upload) 하는 방법이 없나 찾아봤습니다.2시간 정도 삽질했더니 이제 대충 구조는 알겠습니다.필요한 누군가를 위해서 정리해봅니다. 1. 우선 계정에 대한 접속인증키(Access Token Key)를 받아야합니다. https://www.dropbox.com/developers/apps여기로 접속하면, Create app 버튼을 눌러서 app 을 만듭니다. 2. App folder 로 permission access type 을 만듭니다.이렇게하면 Dropbox..
안녕하세요, 건프입니다. 첫번재로 하기 좋은 프로젝트는 Deep Learning 계의 Hello World 에 해당하는 MNIST 데이터 셋을 가지고 노는 것입니다.관련 컴피티션은 여기서 확인할 수 있습니다. https://www.kaggle.com/c/digit-recognizer데이터는 여기서 받을 수 있습니다. https://www.kaggle.com/c/digit-recognizer/data관련되어 연구된 소스는 여기서 확인 가능합니다. https://www.kaggle.com/c/digit-recognizer/kernels 다음은 제가 Keras 라는 Python 딥러닝용 라이브러리를 이용해서 Digit Recognizer 를 해결해 보았습니다.사용한 환경은 Python 3.5+, jupyter..
안녕하세요, 건프입니다. python 의 그래프를 그리는 유용한 툴인 Matplotlib 으로데이터를 다룰때 시각화를 하다보니 그래프 한개를 쓰는법은 잘 알겠는데, (http://matplotlib.org/users/pyplot_tutorial.html)그래프를 한번에 여러개를 그리는 방법에 대해서는 잘 모르겠더라구요. 그래서 한번 정리해서 메모해봅니다. 작업한 환경은 Python 3.5+, Jupyter notebook 위에서 작업했습니다. Matplotlib-Multiple Subplot In [1]: %matplotlib inline import matplotlib.pyplot as plt import warnings In [5]: def example_plot(ax): ax.plot([1,2]) ..
안녕하세요, 건프입니다. 앞에서 ORM 의 개념과, 클래스 지정 방법에 대해서 알아봤습니다. 이번에는 ORM 방법으로 Flask-Sqlalchemy 에서는 어떤식으로 DB 에서 Query 하는지를 알아보고, 실전에서 자주 사용하는 여러가지 기법들에 대해서도 간단하게 메모해보려고 합니다. 첫번째로 일반적으로 테이블에서 값을 가져오는 Query 인 Select 하는 방법을 먼저 알아봅니다. def search_events_by_userid(user_id): """ user_id 를 기준으로 event 찾기, all 로 찾음 """ return TravelEvent.query.filter_by(user_id=user_id).all() def search_event_by_eventid(event_id): """..
안녕하세요, 건프입니다. MySQL DB 를 다루는 여러가지 방법 중에서, 객체지향적 사고방식을 접목한 ORM(Object Relational Mapping) 방법을 소개하고, 간단한 코드를 메모하려고 합니다. 기존의 DB Query 문을 로우레벨에서 직접 작성했던 사람들은, 새로운 프로젝트를 진행함에 있어서 여간 불편한 것이 아닙니다. 할때마다 달라지는 테이블 명, Type들.. 오브젝트가 달라질때마다 받아내는 클래스의 맴버들도 모두 바꿔주어야 하는 불편함이 있었습니다. ORM 은 객체지향적으로 작성하는 모델들(Class) 들의 개념과 관계형 데이터베이스에 속하는 MySQL의 Relation 을 따로따로 보지않고 연결해서 보겠다는 관점에서 출발합니다. 코드를 확인하면 빠르게 이해할 수 있습니다. 예를들..