Kinetica File System(KiFS)를 활용한 이미지 추론
Kinetica File System(KiFS)를 활용한 이미지 추론
1. KiFS 설정
* Config 설정 후 재실행
enable_kifs =
true
kifs_mount_point = /opt/gpudb/kifs
* 확인
1. Data 탭에 KiFS Browser 생성
2. Tables에 filesystem Collection 생성
2. KiFS 이미지 업로드
2-1. 웹에서 업로드
1) Create Floder 후, Upload File(s)
2) Tables > filesystem > __kifs__폴더명 으로 테이블 생성
2-2. mount_point에 직접 업로드
1) mount포인트에 targetfolder 복사
cp -r /targetfolder
/opt/gpudb/kifs/mount/
* 주의 사항
- targetfolder에는 이미지 파일만 있어야 함 (다른 folder가 있으면 안됨)
- 상당한 시간이 소요됨 (10000장에 약 1시간 정도)
2) Tables > filesystem > __kifs__폴더명 으로 테이블 생성
3. Mnist UDF
3-1. Mnist 데이터 생성
TfMnist_layer3의 Ingestion.py 실행
/opt/gpudb/core/bin/gpudb_env.sh
python Ingestion.py
3-2. 데이터 학습
TfMnist_layer3의 Training.py 실행 (기존 샘플파일인 TfMnist는 2layer로 구성되어있고, 3-layer로 수정된 파일)
/opt/gpudb/core/bin/gpudb_env.sh
python Ingestion.py
3-3. 데이터 추론
TfMnist_layer3의 Inference.py 실행
/opt/gpudb/core/bin/gpudb_env.sh
python Inference.py
4. KiFs를 사용해서 데이터 추론하기
4-1. KiFs를 사용하여 추론한 결과가 담길 테이블을 새로 생성 ( 3.기존 MNIST inferencing 테이블을 그대로 사용해도 됨.)
**Mnist_inference_output : Mnist_inference_input 에 있는 데이터를 사용하여 추론한 결과가 담기는 테이블
Mnist_inference_output_kifs : __kifs_mnist_test에 있는 데이터를 사용하여 추론한 결과가 담기는 테이블
4-2. DatabaseDefinitions.py수정
4-3. InferenceUDF.py수정
* 모델은 Mnist_train_output에 있는 모델 그대로 사용
*** __kifs_mnist_test의 이미지 크기는 모두 제 각각임. 모델은 28*28 크기의 이미지로 학습 되었기 때문에
28*28 = 784 배열 형태로 resize해주어야함.
이미지를 읽고 배열 string 형태로 변환 후 resize 해주는 방식(이 과정에서 값의 변형이 일어나면서 이미지가 훼손됨)
4.3 데이터 추론
TfMnist의 Inference.py 실행
/opt/gpudb/core/bin/gpudb_env.sh
python Inference.py
4.4 label 값과 조인하여 결과 확인
TfMnist의 testlabel.csv import
5. 결과 값 비교
5-1. Mnist_inference_output 와 Mnist_inference_output_kifs의 추론 결과 비교
(1) 같은 모델로 데이터 추론 진행
(2) 전체 TEST 데이터 각각 10000개
(3) 추론에 성공한 값 조회
1) select count(*)
from Mnist_inference_output
where predict = label;
약 80% 의 데이터가 추론에 성공
2) select count(*)
from Mnist_inference_output_kifs m
join testlabel t
on split(m.name,'.',1) = char64(t.idx)
where m.predict = t.label;
약 10% 의 데이터만이 추론에 성공
è resize 문제
'인공지능(AI) 이야기 > AI 솔루션' 카테고리의 다른 글
Kinetica 스트리밍 데이터, GIS 혹은 AI 플랫폼을 위한 GPU-가속, 인-메모리 데이터베이스 (0) | 2018.11.08 |
---|---|
H2O Dirverless AI (무인 인공지능 솔루션) (0) | 2018.11.06 |