machine learning(56)
-
[TENSORFLOW] 버전 확인 및 업데이트 하기
Tensor Flow의 MNIST 튜토리얼 진행 중 막히는 부분이 있어 찾아보는 도중 tensorflow update를 진행하라는 게시글을 목격했다. '내가 깐 Tensor Flow 버전이 머지?' 라는 생각이 갑자기 들며, -v 옵션을 주거나, help를 쳐봐도 버전 정보를 보는 어떤 방법도 없길래 주변 지인에게 물어봤더니, 그냥 freeze로 확인하면 된다고 한다. (-_-) $> pip freeze 이렇게 하면 pip로 깔린 모든 패키지의 버전 리스트가 나타나고, 당연히 tensorflow의 버전도 확인이 가능하다. 내친김에 업데이트도 진행하기로 결심! $> pip uninstall tensorflow$> pip install --upgrade https://storage.googleapis.com..
2016.04.28 -
[TENSOR FLOW] MNIST 인식하기
우리는 지금부터 MNIST 필기체 데이터를 인식하는 프로그램을 만들어 볼 것이다. 일단 MNIST DATA를 가져오기 위해서 아래의 url에서 input_data.py를 다운 받는다. https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/examples/tutorials/mnist/input_data.py 우리는 지금부터 MNIST 필기체 데이터를 인식하는 프로그램을 만들어 볼 것이다. 일단 MNIST DATA를 가져오기 위해서 아래의 url에서 input_data.py를 다운 받는다. 다운 받았으면 이제 import로 input_data를 호출하여 MNIST DATA를 가져온다. import syssys.path.append("/root..
2016.04.11 -
[TENSOR FLOW] Introduction
아래 코드를 살펴보자. tensorflow gradient descent tutorial 코드임. 위 코드의 궁극적인 목표는 weight와 bias를 찾아내는 것이다. 위에서의 답은 weight 0.1과 bias 0.3이다. W 값을 찾기 위해서 1x1 행렬의 -1 ~ 1 사이의 값을 무작위로 하나 가져오고 bias는 0으로 설정한다.Gradient descent learning_rate를 0.5로 둔다. 그런 다음 loss 함수를 등록하고, tensor flow의 모든 변수를 초기화 시킨다. tensor flow는 실제 session이 생성되고 run 함수가 호출되기 전까지는 어떤 계산도 이루어 지지 않는다. 위의 과정은 모두 data flow 그래프를 만드는 과정이고 실제 session.run이 일어..
2016.04.09 -
[TENSOR FLOW]Tensorflow 설치하기
아래의 명령어를 실행하여 tensorflow docker 이미지를 가져온다. $> sudo docker pull b.gcr.io/tensorflow/tensorflow-full 여기서 참고로 docker는 반드시 sudo 권한에서만 작동되기 때문에 user를 sudo 권한으로 만들어 주거나 docker 그룹에 해당 user를 추가해 주면 된다. docker 그룹에 user를 추가하는 방법 $> vi /etc/group group 파일을 연 후, docker:x:999: 이렇게 써있는 부분에 , 해당 유저 id를 추가해 주면 된다. ex) docker:x:999:test1,test2,test3 image 파일을 다 받았으면 이제 docker 컨테이너를 시작해보자. $> docker run -it -p 99..
2016.04.08 -
[PYSPARK] linear regression
이번 시간에는 pyspark를 이용하여 linear regression을 배워볼 것이며 million song dataset이라는 데이터를 사용하여 회귀분석을 할 것이다. 우선 가장 먼저 해야할 작업이 당연 spark context를 만드는 작업이다. from pyspark import SparkContextsc = SparkContext(); context 생성 후에 millionsong.txt 파일을 읽어온다. 이 때 분산 파티션은 2로 설정해준다. rawData = sc.textFile("millionsong.txt", 2) 읽어들인 rawData를 살펴보면 아래와 같음을 확인할 수가 있다. 이제 우리는 LabeledPoint라는 객체를 사용할 것이다. 이 LabeledPoint는 pyspark에서..
2016.04.05 -
A simple network to classify handwritten digits
http://neuralnetworksanddeeplearning.com/ 의 e-book을 의역함. 이제 실제로 이미지를 인식해 보자. 이미지를 인식하는데 두가지 문제가 있다. 첫번째로 연속된 이미지의 형태를 각각의 단일 숫자 이미지로 나누어야 한다. 예를 들어 아래와 같은 연속된 이미지가 있다고 할때, 위의 이미지를 아래의 6개의 이미지로 나누어야 한다. 사람은 위의 문제를 쉽게 풀 수 있지만, 컴퓨터 프로그램으로 이를 정확하게 나누기가 어렵다. 일단 이미지가 잘 나뉘어졌다고 치면, 그 다음으로 각각의 숫자를 분류를 해야하는 문제를 가지고 있다. 만약 분류를 정확히 할 수 있다면 이미지 분할 문제는 그렇게 어렵지가 않다. 한가지 접근법으로 많은 유형의 분할된 이미지를 만들고 이 각각의 분할 이미지를 ..
2016.01.21