4.3.2 Node.js에서 모델을 저장하고 브라우저에서 불러오기
모델 훈련은 CPU와 GPU 자원을 소비하고 시간이 걸립니다. 따라서 훈련 결과가 그냥 버려지는 것을 원치 않을 것입니다. 모델을 저장하지 않으면 main.js를 실행할 때 처음부터 다시 시작해야 합니다. 이 절에서는 훈련이 끝난 뒤 모델을 저장하고 저장된 모델을 디스크의 파일(체크포인트(checkpoint) 또는 아티팩트(artifact)라고 부릅니다)로 내보내는 방법을 소개합니다. 브라우저에서 체크포인트를 임포트하고 이를 모델로 바꾼 다음 추론에 사용하는 방법도 알아보겠습니다. main.js에 있는 main() 함수의 마지막 부분은 다음과 같은 모델 저장 코드로 구성되어 있습니다.
코드 4-7 tfjs-node에서 훈련된 모델을 파일 시스템에 저장하기
if (modelSavePath != null) {
await model.save(`file://${modelSavePath}`);
console.log(`Saved model to path: ${modelSavePath}`);
}
model 객체의 save() 메서드는 모델을 파일 시스템의 디렉터리에 저장합니다. 이 메서드는 하나의 매개변수를 받는데, file://로 시작하는 URL 스킴(scheme) 문자열입니다. tfjs-node를 사용하기 때문에 모델을 파일 시스템에 저장할 수 있다는 것을 기억하세요. TensorFlow.js의 브라우저 버전도 model.save() API를 제공하지만, 보안상 브라우저가 이를 거부하기 때문에 컴퓨터의 네이티브 파일 시스템에 직접 저장할 수 없습니다. 브라우저에서 TensorFlow.js를 사용하려면 (브라우저의 로컬 스토리지(local storage)와 IndexedDB 같은) 파일 시스템이 아닌 저장 위치를 사용해야 합니다. 이 경우 URL 스킴은 file://과 다릅니다.26