tfjs-node를 사용해 모델을 로드하려면 tf.loadLayersModel() 함수를 사용합니다. model.json 파일의 위치를 지정합니다(이 예제 코드에서는 사용하지 않습니다28).
const loadedModel = await tf.loadLayersModel('file:///tmp/tfjs-node-mnist');
tf.loadLayersModel()은 model.json에 저장된 토폴로지 데이터를 역직렬화하여 모델을 만듭니다. 그다음, tf.loadLayersModel()이 model.json에 있는 매니페스트 정보를 사용해 weights.bin에서 이진 가중치 값을 읽어 모델 가중치의 값을 강제로 설정합니다. model.save()와 마찬가지로 tf.loadLayersModel()은 비동기 함수입니다. 따라서 이 함수를 호출할 때 await를 사용합니다. 이 함수는 코드 4-5와 4-6에서 자바스크립트 코드로 만들고 훈련한 모델과 사실상 동일한 loadedModel 객체를 반환합니다. summary() 메서드를 호출하여 모델의 요약 정보를 출력하고, predict() 메서드를 사용해 추론을 수행하고, evaluate() 메서드로 정확도를 평가하고, 심지어 fit() 메서드를 사용해 다시 훈련할 수도 있습니다. 필요하다면 이 모델을 다시 저장할 수도 있습니다. 로드된 모델을 다시 훈련하고 저장하는 워크플로는 5장에서 이야기할 전이 학습(transfer learning)과 관련이 있습니다.
이전 문단에서 언급한 내용은 브라우저 환경에도 적용됩니다. 저장된 파일을 사용해 웹 페이지에서 모델을 재구성할 수 있으며, 재구성한 모델은 tf.LayerModel() 워크플로를 완전히 지원합니다. 만약 브라우저에서 전체 모델을 재훈련하면 고성능 합성곱 신경망의 파라미터가 많기 때문에 느리고 비효율적입니다. tfjs-node와 브라우저가 모델을 로딩하는 데 있어 근본적으로 다른 유일한 차이점은 브라우저에서는 file:// 스킴 대신 다른 URL 스킴을 사용해야 한다는 것입니다. 일반적으로 model.json과 weights.bin 파일을 정적 에셋(asset) 파일로 HTTP 서버에 올려 놓습니다. 호스트 이름(hostname)이 로컬 호스트라 가정하고, /my/models 경로 아래에 파일이 있다면 다음 코드처럼 브라우저에서 모델을 로드할 수 있습니다.
const loadedModel = await tf.loadLayersModel('http:///localhost/my/models/model.json');