티스토리 뷰

저번에 쓴 글에서는 오류가 있었던게 내가 직접 파일 시스템에 올렸었던게 적용이 되어있는 상태였다.

파일 시스템을 삭제 시킨 뒤에는 정상적으로 업로드 되지 않는 문제점이 있었다.

tf model 로드

tf.model을 로드하는 방법으로 여러가지 방법이 있었다.

1. 로컬 저장소

const model = await tf.loadLayersModel('localstorage://my-model');

2. indexedDB

const model = await tf.loadLayersModel('indexeddb://my-model');

3. HTTP

const model = await tf.loadLayersModel('http://model-server.domain/download/model.json');

4. 네이티브 파일 시스템

const model = await tf.loadLayersModel('file://path/to/my-model/model.json');

이미 사전된 모델의 경우 어디엔가 업로드 되어 있는 주소링크를 통해 접근하였다.

그래서 찾아본 결과 jsdelivr이라는 것을 알게 되었고 깃허브와 연동이 되어 접근이 쉽다는 것이 특징이었다.

나의 경우 load-keras-model 이라는 repo를 만들어 tfjs_model 안에 json, bin파일이 있다.

그렇다면 jsdelivr cdn 주소는 https://cdn.jsdelivr.net/gh/\[깃허브아이디\]/\[repo 이름\]/\[경로\]/\[경로파일\] 와 같이 할당된다.

나의 경우 jsdelivr 주소는 https://cdn.jsdelivr.net/gh/ghrnwjd/load-keras-model/tfjs\_model/model.json 이다.

 

모델을 save, load하는 코드는 다음과 같이 작성하였다.

아직 자바스크립트가 익숙하지 못해서 좀 그렇다.

// 생략

const MODEL_JSON_URL = "https://cdn.jsdelivr.net/gh/ghrnwjd/load-keras-model/tfjs_model/model.json";
app.use('/loadModel', async (req, res) => {   
    const model = await tf.loadLayersModel(`${MODEL_JSON_URL}`);
    await model.save('file://./othello').then(() => {
        res.send(model);
    });          
})

app.get("/useModel", async (req,res) => {
    const model = await tf.loadLayersModel("file://./othello/model.json");
    if(model != null) {
        res.send(model);
    }
    else {
        res.send("모델이 어딨냐..");
    }
})

실행결과 model이 어디에 저장된지는 아직 모르겠다. 네이티브 파일 시스템에 대해서 알아봐야 될 것 같다.

그래서 모델이 save가 된건지 확인하기 위해 model을 출력하는 방식으로 확인하였고

결과화면

1. /loadModel

2. /useModel

express 공부와 네이티브 파일 시스템에 대한 공부를 더 해봐야 될 것 같다.

 

참고자료

https://www.tensorflow.org/js/guide/save_load?hl=ko 

 

모델 저장하기 및 로드하기  |  TensorFlow.js

모델 저장하기 및 로드하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. TensorFlow.js는 Layers API로 생성되었거나 기존 TensorFlow 모델에서 변환된 모델을 저장

www.tensorflow.org

https://joshua-dev-story.blogspot.com/2020/09/javascript-open-source-cdn-jsdelivr.html

 

JavaScript 오픈소스 CDN jsDelivr(JS 배달) 사용 방법

npm·GitHub에 등록되어 있는 JavaScript (또는 CSS) 오픈소스를 CDN을 통해서 가져와 사용할 수 있는 간편한 방법을 소개합니다.

joshua-dev-story.blogspot.com

 

'📦 개발 > JavaScript' 카테고리의 다른 글

[NODEJS] tensorflow 모델 업로드  (0) 2023.03.17
[JAVASCRIPT] keras model tfjs 형식으로 변환  (0) 2023.03.15
[JAVASCRIPT] express mysql 연동  (0) 2023.02.13
[JAVASCRIPT] express routing  (0) 2023.02.11
[JAVASCRIPT] html elements  (0) 2023.02.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함