프로젝트/Tondo - 댓글의 온도

[Tondo] (Node.js) 머신러닝 돌리기 child-process 사용

모영이 2021. 5. 12. 00:33

체크 포인트 03 - 머신러닝 돌리기 child-process 사용

머신러닝 모델 model.h5를 실행시키는 함수가 Python파일이어서 JS환경에서 Python 사용하는 방법을 열심히 찾아봤다. 사실 tensorflow.js를 사용하면 어떻게 될 것 같았는데, 나름의 이유로 python을 그대로 사용하자고 결론 내렸다. 여기서 문제가 정말 많았는데 생각나는대로 정리해보겠다.

 

1. GPU 에러
NVDIA CUDA에러가 떠서 CUDA라는 것을 다운받았다. 뭔지 모름.

2. 로컬 파일 경로 에러 

분명 같은 디렉토리에 존재하는 파일인데, no file이 계속 떠서 파일의 전체 경로를 입력해주어야 했다. 이렇게 되면 배포할때 문제가 분명히 발생할텐데 이걸 해결하고 있을 미래의 나에게 미안하다고 말해야겠다..미안

3. JSON.parse 에러

진짜 미치는 줄 알았는데 결국 model.evaluate에서 이런식으로 print가 되어있는 줄 모르고 그냥 전체를 JSON으로 바꾸려다보니 발생하는 에러였다. 그리고 Json 이렇게 쓰면 안된다. JSON 이렇게 써야한다.

1/313 [..............................] - ETA: 48:56 - loss: 0.1198 - accuracy: 0.9688
19/313 [>.............................] - ETA: 0s - loss: 0.0767 - accuracy: 0.9655   
39/313 [==>...........................] - ETA: 0s - loss: 0.0988 - accuracy: 0.9559
4. child-process의 이해

구글에 검색하면 정말 잘 나온다. 결론은 python파일을 함수형태로 만들어서 main에 넣어야하고 출력값은 return이 아니라 print로 해야한다. 

 

마주친 에러는 이정도인 것 같다. 처음에는 이게 될까 싶었는데 돌아가는거 보고 약간 신기했다. 

오류 발견, parse성공