라벨이 머신러닝인 게시물 표시

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

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

(머신러닝-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 ] = 10 print (a) npc = np.array([[ 1 , 2 ] , [ 3 , 4 ]]) print (npc[ 0 , 0 ] , npc[ 0 , 1 ]) 실행결과 <class 'list'> <class 'numpy.ndarray'> int32 float64 1 [1, 2, 3, 4, 5, 6] 1 2 numpy의 ndarray는 리스트를 사용하는 방법과 유사하게 사용할 수 있다. 많이 쓰이는 함수 import numpy as np print (np.zeros( 5 )) print (np.zeros(( 3 , 3 ))) print (np.ones( 5 )