Training 7

구글 클라우드 Vertex.AI Model 학습 및 모델 배포&서빙

Vertex.AI Model 학습 및 모델 배포&서빙 조대협 (http://bcho.tistory.com) 머신러닝 환경에서, 학습을 수행하기 위해서는 프레임웍에 맞는 환경 (파이썬,텐서플로우)등을 설치하고, 필요한 컴퓨팅 리소스 (CPU,GPU)등을 프로비저닝 한후, 학습을 진행해야 한다. 학습이 완료되면 서빙을 위해서 모델을 export 하고, 서빙을 위한 API 서버를 설치 한 후에, 모델을 배포해서 서빙을 해야 한다. 서빙시에는 학습시 데이터와 서빙 요창에 들어온 데이터가 크게 차이가 나지 않는지 (training & serving detection), 또는 서빙 요청이 들어온 데이터가 이전 서빙 요청이 들어온 데이터와 크게 차이가 나지 않는지 (data drift detection)등의 체크를 ..

K Fold Cross Validation

K Fold Cross Validation 조대협 (http://bcho.tistory.com) K 폴드 크로스 벨리데이션 / 교차 검증이라고도 함. 용어 정리.별거 있는건 아니고 전체 데이타를 K개로 나눈다음. (각각을 폴드라고함), 첫번째 학습에서는 첫번째 폴드를 테스트 데이타로 쓰고두번째 학습에서는 두번째 폴드를 테스트 데이타로 쓰고N번째 학습에서는 N번째 폴드를 테스트 데이타로 쓴다. (출처 : http://library.bayesia.com/pages/viewpage.action?pageId=16319010) 그래서 폴드가 5개면 5 Fold CV (Cross validation)이라고 한다.

Apache Beam (Dataflow)를 이용하여, 이미지 파일을 tfrecord로 컨버팅 하기

Apache Beam (Dataflow)를 이용하여, 이미지 파일을 tfrecord로 컨버팅 하기 조대협 (http://bcho.tistory.com) 개요텐서플로우 학습에 있어서 데이타 포맷은 학습의 성능을 결정 짓는 중요한 요인중의 하나이다. 특히 이미지 파일의 경우 이미지 목록과 이미지 파일이 분리되어 있어서 텐서플로우에서 학습시 이미지 목록을 읽으면서, 거기에 있는 이미지 파일을 매번 읽어야 하기 때문에, 코딩이 다소 지저분해지고,IO 성능이 떨어질 수 있다텐서플로우에서는 이러한 학습 데이타를 쉽게 읽을 수 있도록 tfrecord (http://bcho.tistory.com/1190)라는 파일 포맷을 지원한다. 이 글에서는 이미지 데이타를 읽어서 tfrecord 로 컨버팅하는 방법을 설명하며, 분..

Tensorflow Object Detection API를 이용한 물체 인식 #2-동물 사진을 학습 시켜보자

Object Detection API에 애완동물 사진을 학습 시켜 보자 조대협 (http://bcho.tistory.com) Object Detection API에 이번에는 애완동물 사진 데이타를 학습시켜 보도록 한다.애완 동물 학습 데이타의 원본은 Oxford-IIIT Pets lives 로 http://www.robots.ox.ac.uk/~vgg/data/pets/ 에 있다. 약 37개의 클래스에, 클래스당 200개 정도의 이미지를 가지고 있다. 이번 글에서는 이 애완동물 데이타를 다운 받아서, Object Detection API에 학습 시키는 것까지 진행을 한다.데이타를 다운로드 받은 후, Object Detection API에 학습 시키기 위해서, 데이타 포맷을 TFRecord 형태로 변환한 후..

얼굴 인식 모델을 만들어보자 #4 -클라우드를 이용하여 학습 시키기

얼굴 인식 모델을 만들어보자 #4 클라우드를 이용하여 학습 시키기(머신러닝 학습 및 예측 시스템의 운영환경화) 조대협 (http://bcho.tistory.com) 앞에서 모델을 만들고 학습도 다했다. 이제, 이 모델을 실제 운영 환경에서 운영할 수 있는 스케일로 포팅을 하고자 한다. 로컬 환경 대비 실제 운영 환경으로 확장할때 고려해야 하는 사항은 대규모 학습 데이타를 저장할 수 있는 공간대규모 학습 데이타를 전처리하기 위한 병렬 처리 환경 이 내용은 이미 http://bcho.tistory.com/1177에서 다루었다. 대규모 학습 데이타를 빠르게 학습 시킬 수 있는 컴퓨팅 파워학습된 데이타를 이용한 대규모 예측 서비스를 할 수 있는 기능 위의 요건을 만족하면서 텐서플로우로 환경을 올리는 방법은 여러..

텐서 보드를 이용하여 학습 과정을 시각화 해보자

텐서보드를 이용하여 학습 과정을 시각화 해보자 조대협 (http://bcho.tistory.com) 텐서플로우로 머신러닝 모델을 만들어서 학습해보면, 각 인자에 어떤 값들이 학습이 진행되면서 어떻게 변화하는지 모니터링 하기가 어렵다. 앞의 예제들에서는 보통 콘솔에 텍스트로 loss 값이나, accuracy 값을 찍어서, 학습 상황을 봤는데, 텐서보다는 학습에 사용되는 각종 지표들이 어떻게 변화하는지 손쉽게 시각화를 해준다. 예를 들어 보면 다음 그림은 학습을 할때 마다 loss 값이 어떻게 변하는지를 보여주는 그래프이다.가로축은 학습 횟수를 세로축은 모델의 loss 값을 나타낸다. 잘 보면 두개의 그래프가 그려져 있는 것을 볼 수 있는데, 1st 그래프는 첫번째 학습, 2nd 는 두번째 학습에서 추출한 ..

딥러닝을 이용한 숫자 이미지 인식 #2/2-예측

딥러닝을 이용한 숫자 이미지 인식 #2/2 앞서 MNIST 데이타를 이용한 필기체 숫자를 인식하는 모델을 컨볼루셔널 네트워크 (CNN)을 이용하여 만들었다. 이번에는 이 모델을 이용해서 필기체 숫자 이미지를 인식하는 코드를 만들어 보자 조금 더 테스트를 쉽게 하기 위해서, 파이썬 주피터 노트북내에서 HTML 을 이용하여 마우스로 숫자를 그릴 수 있도록 하고, 그려진 이미지를 어떤 숫자인지 인식하도록 만들어 보겠다. 모델 로딩 먼저 앞의 예제에서 학습을한 모델을 로딩해보도록 하자.이 코드는 주피터 노트북에서 작성할때, 모델을 학습 시키는 코드 (http://bcho.tistory.com/1156) 와 별도의 새노트북에서 구현을 하도록 한다. 코드import tensorflow as tfimport nump..