Tensorflow.Keras에서 학습한 모델을 tensorflow.js에서 사용

Google Colaboratory에서 학습한 모델html 앱 에서 이용하기

tensorflow.js로 모델을 변환하여 angular 앱에 통합



절차는 크게 나누어 세 가지
  • Google 공동 작업에서 학습
  • 학습 된 모델의 (model.h5) 파일을 TensorFlow.js Layers format으로 변환
  • 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/사사코/보이

    좋은 웹페이지 즐겨찾기