
초보 입장에서 어려웠던 부분중에 하나가 큰 데이터를 다루는 부분 이었다.데이터는 크게 Feature, Label로 나뉘는데Raw 데이터를 이용해 Label을 후에 붙여주게 된다.내 경우에는 RAW 데이터가 MySQL 로 저장이 되어MySQL에서 아래 작업을 처리 하려고 했었는데 이게 문제였다. 1. Feature 부분을 Export -> Export 속도가 느림.2. label 생성 -> 생성은 빠름3. Feature와 Label을 Join -> 하루 종일 돌려서 6000만건, 3억 건이면 5일을 돌려야 됨 이에 대한 해결 책은1. Python을 이용하여 Feature데이터를 나누어서 Parquet 형식으로 저장2. Label 도 Parquet 형식으로 저장3. Label 과 Feature는 나중에 Jo..

일단 AWS Sagemaker에 들어가 본다. 바로 SageMaker 시작하기가 있어서 들어갔다. 역할 구성 아래 창에서 기록 안하면 다음으로 안 넘어가서 일단 최소화 하고간단한것들만 작성해 봤다. 도메인 설정 S3 리소스 구성 일단 설정이 되었으니 자습서를 따라가 본다.https://aws.amazon.com/ko/sagemaker/getting-started/ Amazon SageMaker에서 기계 학습 시작하기 - Amazon Web Services aws.amazon.com 여러가지가 있는데 일단 노코드 ML을 시도 해 보자 들어가서 여러 가이드가 있는데 비용을 먼저 살펴 보니 SageMaker Canvas를 시도하려는 4명의 분석가 팀이 있다고 가정해 보겠습니다. 그중 한 명이 50MB 입력 ..

나는 처리하고 싶은 데이터는 가지고 있다.그런데 문제는 라벨링. 데이터를 처리 해서 라벨링을 해야 하는데어느새 데이터가 3억건이 되어 있었다. 처리 해 보니 라벨을 생성 하는 것 보다라벨을 DB에 다시 저장하는게 오래 걸린다. CPU는 놀고 있는데 SSD가 계속 돌아가면서더 빨리 돌릴 방법이 없다. 일단 이건 이것 대로 돌려두고300만개 정도만 CSV 파일로 만들어서AWS C3 에 올려 봤다. AWS에 올리는건 아주 간단하다. 1. S3에 들어가서 2. 버킷 만들기 3. 그대로 놓고 버킷 만들기 버튼 누르기 4. 생성된 버킷 확인 5. 버킷 들어가기 6. 업로드 버튼 누르고 파일 올리기 이렇게 하면 파일이 올라간다.160GB 까지는 이대로 올라가는데더 큰걸 올리려면 API를 써야 한다고 한다.

2017년에 시도 했던 Machine learning을 다시 해 보려고주섬 주섬 코드를 찾고 그래픽 카드를 설치하고 머신러닝을 해 보려고 하는데몇가지 어려움이 생긴다. 1. 데이터가 커지니 전 처리가 쉽지않다. 그 동안 데이터가 100GB 이상, 3억건으로 커졌고 여기에 Label 을 붙이려고 하니 몇 일이 걸렸다. 2. 오래된 GTX1080Ti는 호환성을 맞추기가 참 어렵다. CUDA, Numpy Pandas 등 최신 버전을 사용 할 수 없고 예전 버전을 사용 해야 하는데, 그러면 최신 예제 코드들이 에러가 난다. 쓸 수는 있는데, 쉽지 않다. 3. 데이터가 커지니 학습도 쉽지 않다. 용량이 커지니 배치로 처리 하는데, 데이터를 가져 오고 학습하는 과정이 많..
이번에는 층을 늘여서 Regression을 해 보겠습니다. 층을 늘이기 위해서 마지막에 Wx+b 층 전 까지 Activation Function을 사용 해서네트워크들을 연결 해 주었습니다. Activation 은 Relu를 사용 했습니다.Relu 를 사용하면서 부터 Vanishing gradient라는 현상을 피할 수 있어서학습 layer를 깊게 쌓을수 있게 되었다고 합니다. 그림으로 표현해 보면 아래와 같습니다. 그리고 이렇게 층이 많아지면 W,B 도 같이 많아지게되고이러한 변수들의 초기값을 정하는 것이 중요한 문제가 됩니다. 왜냐하면 위의 그림만 하더라도 W 값이 19*50 + 50*50*18 + 19 개가 되고초기값이 적절하게 정해지지 못하면 학습 시간이 많이 걸리게 되기 때문 입니다. 이런 Wei..
CSV 파일을 이용해서 데이터를 가져오고간단한 1 layer regression 을 해 보겠습니다. 지난 포스트에서 사용했던 데이터를 이용해서모델을 만들어 보겠습니다. 입력 데이터는 19개 이고 출력 데이터는 0~1 의 실수를 갖는 모델 입니다.아래 그림과 같이 19개의 weight와 1개의 Bias가 필요 합니다. 수학 공식으로 나타내면y = w1*x1+b1 +w2*x2+b1+ w3*x3+b1 + ... + w17*x17+b1 + w18*x18+b1 _w19*x19+b1 제 데이터는 200만개 정도로200만개 중에서 랜덤으로 10000개씩 Batch 처리 해서 데이터를 불러와 학습하고오차율을 계산 해 보겠습니다. import tensorflow as tf with tf.name_scope("input"..
지난 포스팅에 이어서 CSV 파일을 가져오는 예제를 계속 했습니다.이번에 해 본 것은 데이터를 한번에 다 가져오는 것이 아니라전체 데이터를 Shuffle 하여 그중에 일부를 가져오는 것 입니다. 데이터가 많을 때 한번에 모든 데이터를 입력하려면시간이 많이 소모 되기 때문에 랜덤하게 일부 데이터를 가져와서학습시키는 것을 반복할 때 유용합니다. 이번에 사용한 데이터는아래와 같이 생긴 모양의 데이터가 100개 Row 있습니다. https://www.tensorflow.org/programmers_guide/reading_data공식 사이트에 나와있는 대로 하다보면에러가 계속 발생해서 찾다보니tf.local_variables_initializer()를 추가 해야 한다는 것을 찾고 시행하니 잘 동작합니다. fro..
가지고 있는 데이터를 사용 해서 학습을 시켜 보겠습니다. 기존 예제들은 데이터의 포멧도 잘 맞춰져 있어서 파일을 읽어오고배치로 입력하고 하는 과정이 간단하게 되어 있습니다. 하지만 막상 실제 데이터를 사용하려니데이터를 선정하고 데이터를 가공하고 데이터를 입력하는 것이 어려운 것 같습니다. 오늘은 데이터를 읽어 오는 것을 해 보겠습니다. 1. 데이터 준비저는 2GB 정도 되는 데이터를 가지고 있습니다.Mysql에 저장이 되어 있고 이것을 CSV 파일로 Import 하였습니다.2GB 정도 되니 더이상 엑셀로 열리지 않습니다.데이터를 10000개만 추출하여 파일을 만들고 시험 해 보았습니다. 데이터는 아래와 같이 주황색 부분에 Raw Data가 12개, 초록색 부분에 Raw Data를 가공하여 만든 24개의 ..
이번에는 MNIST 예제를 이용해서 Tensorboard를 사용해 보겠습니다. Tensorboard에 사용되는 데이터를 생성하기 위해서는 Summary라는 기능을 사용합니다. 자세한 설명은 아래에 있네요https://www.tensorflow.org/api_docs/python/summary/ 지난 포스트에서 사용했던 mnist 예제에 코드를 추가해 Tensorboard를 사용 해 보겠습니다. 기존 코드에서 tensorboard를 위해 추가한 부분을 굵은 글씨로 표시 했습니다. from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data/", one_hot=True) import ..
현재 저는 윈도우10에 anaconda로 python 환경을 구축하고그 속에서 텐서플로우를 사용하고 있습니다. Windows 에서 Tensorboard 가 사용 불가능 하다는 글들을 본 것 같은데2017.2.12 현재는 사용이 가능합니다. 설치는 이전 포스팅에서 텐서플로우를 설치 했으면 기본으로 설치 되어 있습니다.인터넷을 돌아다니면 pip로 설치 시에 문제가 있을 수 있다는 이야기도 있는데지금은 문제가 없는 것 같습니다. 윈도우에서 아나콘다설치, 텐서플로우설치는 이전 포스트를 참고 해 주세요아나콘다설치 : http://tensorflowstepbystep.tistory.com/1텐서플로우 설치 :http://tensorflowstepbystep.tistory.com/2 해 보면서 어려웠던 점은 어디에 ..
- Total
- Today
- Yesterday