목록deeplearning (4)
아는 만큼 보인다
tensorflow lite 소개, 변환, 추론 관련 내용은 여기에 정리되어 있다. SavedModel 형식과 관련된 공식 문서는 이곳이다. 그런데 이게 사용해보니, 처음에 SavedModel 형식으로 모델을 저장할 때 input_signature라는 것을 지정해줘야 했다. 즉 batch size와 input length 등 input meta 정보를 같이 저장해주어야 했다. 그냥 모델을 저장하니 에러가 나서, 구글링 끝에 얻은 코드는 다음과 같다. 아래는 TFLite로 변환하기 전, 즉 model을 pb 모델로 제대로 저장하기 위한 코드이다. def save_SavedModel(model, batch, input_len, save_path): class MyModule(tf.Module): def __..
우리 회사는 클라우드 기반 서비스를 제공하지만, 비용 등의 문제로 CPU만 사용하고 있으며, 빠른 추론 속도가 핵심이다. 그래서 Tensorflow Lite (TFLite)를 택해서 모델을 배포하고 있다. 1. TFLite 소개 TFLite는 모바일 기기, 임베디드 시스템, IoT 기기 등 리소스가 제한된 기기에서 효과적으로 추론할 수 있도록 모델을 최적화하고 배포하기 위한 프레임워크이다. 즉 Tensorflow model을 경량화하기 위한 도구이다. 빠른 응답속도, 작은 사이즈가 특징이다. TFLite는 FlatBuffer(.tflite 파일 확장자로 식별됨)라는 특수 형식을 사용하여 작고 이동 가능한 좋은 포맷을 구현했다. 반면 tensorflow 는 Protocol Buffers 라는 것을 사용하는..

딥러닝 모델을 개발할 때 가장 중요한 것은 무엇일까? 멋진 모델? 요즘 유행하는 모델? 요즘 사람들이 많이 쓴다고 하는 모델? 좋은 모델을 쓰는 것은 당연히 중요하다. 그렇다면 좋은 모델이란 무엇인가? 입사 후 약 4개월 간 첫 딥러닝 프로젝트를 진행하며 모델이 학습해야 하는 데이터, 모델 개발을 통해 이루고자 하는 구체적인 목표, 모델의 추론 결과를 직접 보게 되는 타겟 사용자를 고려하는 것이 좋은 모델을 만들기 위해 우선적으로 고려해야 하는 점이라는 걸 배울 수 있었다. 그리고 언제나 그렇듯이 다함께 하는 프로젝트이므로 언제나 어떻게 하면 더 효율적으로 소통할 수 있을지 고민하고, 더 꼼꼼하게 일하고 집요한 Q&A 기회를 갖는 것 -- 그렇지 않은 프로젝트가 있을까? 데이터가 많으면 무조건 좋다? '..

요번 ECG 리듬 분류 모델로 preactivated ResNet을 사용하고 있는데, 생각해보니 쓰고 있긴 하지만 ResNet 자체를 제대로 짚고 넘어간 적이 없는 것 같아, ResNet 과 preactivated ResNet을 순차적으로 리뷰해보려 한다. 특히, ECG 분류에 있어서 ResNet은 여러모로 무난하게 잘 작동하는 모델인 것 같다. Literature review를 해봐도 ResNet 을 사용한 논문이 많은 것 같았다. 시작! (참고로 ResNet이 해결하려는 문제가 무엇인지 분명히 짚고 가고자 서론이 좀 길다 ㅎㅎ) Deep Residual Learning for Image Recognition (link) ResNet이 해결하고자 하는 문제, ResNet의 동기 딥러닝 모델들이 개발되면..