라벨이 [Platform]인 게시물 표시

[플랫폼] IFTTT와 플랫폼

이미지
IoT 개발 보드 중에 인터넷 연결을 위해 IFTTT라 서비스를 제공하는 것들이 있습니다. 간단한 역할을 하지만 확장성이 아주 좋습니다. 좋은 플랫폼으로서 갖추어야 할 많은 특징들을 살펴볼 수 있을 것 같습니다.
IFTTT 소개 IFTTT(If This Then That)는 스마트폰 애플리케이션 형태로 서비스를 제공합니다. 하는 역할은 두 가지 서비스를 엮어주는 것입니다. 예를 들자면 아침 7시에 오늘 일기예보를 메신저로 보내줘.NASA 긴급발표가 있으면 알림(Notification)을 줘.인스타에 사진을 올리면 페이스북에도 공유해줘.집 근처에 도착하면 WiFi를 켜줘.센서가 뭔가 감지하면 메일을 보내줘.스마트폰에 버튼을 누르면 집에 불을 켜줘. 같은 것들이 있습니다.
IFTTT는 그 이름이 나타내듯이 This(Trigger)가 생기면 That(Action)을 해줘를 그 기능의 본질로 합니다. 그리고 이런 애플릿 들을 인터넷으로 공유할 수 있게 해줍니다. 다른 사람들이 올려놓은 애플릿을 나의 계정들에 연결해서 바로 사용할 수도 있고 필요하면 내가 직접 만들수도 있습니다. IFTTT와 플랫폼서비스 플랫폼으로서 IFTTT가 갖는 특징은 대략 이런 것들 입니다. 개방 : 누구나 플랫폼에 들어올 수 있습니다. 서비스 제공자(페이스북, 트위터, 날씨 등등)공유 : 만든 것을 쉽게 공유할 수 있습니다. 스스로의 필요로 사용자가 애플릿을 만들고 이를 누구나 쓸 수 있게 공유합니다.성장 가능성 : IFTTT의 규칙만 따른다면 누구나 서비스 제공자가 될 수 있습니다. 인터넷 서비스 연결하는게 뿐만 아니라 IoT(Internet of Things, 사물인터넷) 제공자들도 많이 참여하고 있습니다. 파트너라고 부르는데 GE나 LG, 삼성과 같은 가전회사에서도 IFTTT를 지원하는 제품들을 많이 만들고 있습니다. 간단한 서비스지만 좋은 플랫폼입니다. 사용자가 이 플랫폼에 열광하는 이유는 누구나 쉽게 사용할 수 있고 계속 새로운 서비스가 만들어질 수 있는 환경을 제공하기 때문입니다. I…

(머신러닝-7) 텐서플로우 Basic

이미지
지금까지 파이썬에 대해서 알아보았다. 파이썬과 텐서플로우는 궁합이 잘 맞는다. 이제부터는 텐서플로우에 대해서 알아본다. 텐서플로우는 모든 프로그램이 계산 그래프 (computational graph)를 통해 구성되며, 이 계산 그래프가 CPU, GPU 등의 연산장치에서 작동된다. 계산 그래프란 프로그램의 계산 구조를 정의하는 방향성 그래프 (directional graph)를 말한다.
계산 그래프는 노드 (node)와 엣지 (edge)로 구성된다. 노드는 계산 그래프에서 값들의 계산하는 등의 작업을 나타낸다. 텐서플로우에서 노드는 오퍼레이션(OP)라고 부른다. 그리고 실제 값을 전달하는 것이 엣지이다. 엣지는 화살표로 표현된다.
텐서플로우의 계산 그래프는 엣지를 따라 텐서(tensor)라는 형태로 값이 다른 오퍼레이션으로 이동한다고 말한다.  그래서 언어 이름이 텐서(tensor)의 흐름(flow)이다. 텐서는 데이터를 표현하는 기본 단위로 다차원(multi-dimensional) 행렬을 의미한다.
Session 텐서는 Spark의 RDD(Resilient Distributed Dataset)과 개념이 비슷하다. 공통점은 정의되었을 때 실행되는게 아니라 실제 연산을 수행할 때 실행한다.

(머신러닝-6) 머신러닝을 위한 파이썬 Advanced

이미지
Data Analytics에서 파이썬은 상당히 유용한 패키지들을 많이 제공한다. 지금부터 파이썬과 함께 쓰면 유용한 패키지들에 대해서 알아본다. 앞으로 진행하게 될 텐서플로우도 마찬가지다. 이번 장에서 살펴 볼 패키지들은 텐서플로우를 사용하면서도 많이 활용될 것들이다.
NUMPY Numerical Python의 줄임말로 다차원 배열인 ndarray(N-dimensional array)와 선형대수, 난수 발생 등의 수학적 계산에 많이 사용된다. 파이썬의 리스트 자료구조는 다양한 자료형을 저장할 수 있어 매유 유연하지만 메모리 점유 공간이 많고 속도가 느려지고, 프로그램 오류를 발생시키는 경우가 많다. 이러한 문제를 해결하기 위해 numpy의 ndarray를 사용한다.
numpy의 ndarray 사용하기 import numpy as np a = [1, 2, 3, 4, 5, 6] npa = np.array(a) print(type(a)) print(type(npa)) print(npa.dtype) b = [1.0, 2.0, 3.0, 4.0, 5.0] npb = np.array(b) print(npb.dtype) print(npa[0]) npa[0] = 10print(a) npc = np.array([[1, 2], [3, 4]]) print(npc[0, 0], npc[0, 1])