Tensorflow.Keras에서 학습한 모델을 tensorflow.js에서 사용
tensorflow.js로 모델을 변환하여 angular 앱에 통합
절차는 크게 나누어 세 가지
해설
1. Google Colaboratory에서 학습
JupyterNotebook에 해설을 기재하고 있으므로 ↓ 여기를 참조하십시오
Google 공동체 학습 및 모델(model.h5) 저장 JupyterNotebook .
2. 학습된 모델의 (model.h5) 파일을 TensorFlow.js Layers format으로 변환
JupyterNotebook에 해설을 기재하고 있으므로 ↓ 여기를 참조하십시오
Google Colaboratory 학습 된 모델 (model.h5)을 변환하는 JupyterNotebook
마지막으로 jsmodel.zip 파일을 다운로드할 수 있습니다.
3. TensorFlow.js를 사용하여 앱을 개발합니다.
만든 앱은 여기에서 동작을 확인할 수 있습니다.
htps : // 사사코. 기주 b. 이오/보이
이 기사에서는 Tensorflow.js 포인트만 설명합니다.
이 앱은 Angular7을 사용합니다.
변환된 모델(model.json)을 asset 폴더에 놓습니다.
액세스(읽고 쓰기)할 수 있는 폴더는 asset 폴더이므로 변환한 모델(model.json)을 asset 폴더에 둡니다.
@tensorflow/tfjs 모듈을 프로젝트에 추가
터미널에서 다음 명령 실행
npm install @tensorflow/tfjs --save
이제 package.json에 추가됩니다.
파일 메뉴에서 계산을 클릭하면 AI가 예측을 시작합니다.
이 처리를 src\app\components\menu\menu.component.ts
@tensorflow/tfjs 가져오기
import * as tf from '@tensorflow/tfjs';
모델 로드
const MODEL_PATH = 'assets/jsmodel/model.json';
const model = await tf.loadLayersModel(MODEL_PATH);
입력된 데이터 가져오기
const data = this.input.getInputArray();
정규화 처리
let data_normal = [];
const maxValue = [10, 6, 4, 2, 2, 2, 2, 14.117, 18, 11.25, 11.95, 7.57, 7.57, 6.9, 7.57
, 6.606, 93.47583, 700, 700, 1200, 1200];
const minValue = [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 30.00833, 0, 0, 0, 0];
for (let i = 0; i < data.length; i++){
data_normal.push((data[i] - minValue[i]) / (maxValue[i] - minValue[i]));
}
입력된 데이터를 텐서로 변환
const inputs = tf.tensor(data_normal).reshape([1, data_normal.length]);
AI로 추론하기
const output = model.predict(inputs) as any;
let predictions_normal = Array.from(output.dataSync());
대답은 정규화를 취소합니다.
const predictions = [];
const maxValue1 = [2000, 1900, 1900, 1100, 600];
const minValue1 = [ 130, 130, 130, 0, 0];
for (let i = 0; i < predictions_normal.length; i++){
const a: number = this.input.toNumber(predictions_normal[i]);
predictions.push((maxValue1[i] - minValue1[i]) * a + minValue1[i]);
}
추론된 데이터 표시
this.input.loadResultData(predictions);
소스 코드는 여기에 있습니다.
htps : // 기주 b. 코 m/사사코/보이
Reference
이 문제에 관하여(Tensorflow.Keras에서 학습한 모델을 tensorflow.js에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sasaco/items/9c7a4e247710ed747dbd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
npm install @tensorflow/tfjs --save
import * as tf from '@tensorflow/tfjs';
const MODEL_PATH = 'assets/jsmodel/model.json';
const model = await tf.loadLayersModel(MODEL_PATH);
const data = this.input.getInputArray();
let data_normal = [];
const maxValue = [10, 6, 4, 2, 2, 2, 2, 14.117, 18, 11.25, 11.95, 7.57, 7.57, 6.9, 7.57
, 6.606, 93.47583, 700, 700, 1200, 1200];
const minValue = [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 30.00833, 0, 0, 0, 0];
for (let i = 0; i < data.length; i++){
data_normal.push((data[i] - minValue[i]) / (maxValue[i] - minValue[i]));
}
const inputs = tf.tensor(data_normal).reshape([1, data_normal.length]);
const output = model.predict(inputs) as any;
let predictions_normal = Array.from(output.dataSync());
const predictions = [];
const maxValue1 = [2000, 1900, 1900, 1100, 600];
const minValue1 = [ 130, 130, 130, 0, 0];
for (let i = 0; i < predictions_normal.length; i++){
const a: number = this.input.toNumber(predictions_normal[i]);
predictions.push((maxValue1[i] - minValue1[i]) * a + minValue1[i]);
}
this.input.loadResultData(predictions);
Reference
이 문제에 관하여(Tensorflow.Keras에서 학습한 모델을 tensorflow.js에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sasaco/items/9c7a4e247710ed747dbd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)