본문 바로가기

TensorFlow

PoseNet: TensorFlow.js으로 실시간 human pose estimation 구현하기 자바스크립트로 ML 모델을 개발하고 브라우저 혹은 Node.js에서 실행할 수 있는 TensorFlow.js을 활용하여 실시간으로 사람의 자세를 추정하는 human pose estimation을 구현할 수 있습니다. 참고 자료 : https://blog.tensorflow.org/2018/05/real-time-human-pose-estimation-in.html 구글 라이브 데모 >> https://storage.googleapis.com/tfjs-models/demos/posenet/camera.html PoseNet - PoseNet은 MobileNet 혹은 ResNet 기반의 human pose estimation 네트워크이다. - TensorFlow.js에서 실행할 수 있기 때문에 a) 웹캠 혹.. 더보기
[TensorFlow] Callback 사용하기 - 커스텀 콜백 / 모델 학습 / 평가 🙋‍♀️ Callback은 모델 학습 중 호출할 수 있는 기능을 의미한다. 🙋‍♀️ tf.keras.callbacks에는 함수가 구현되어 있으며, 직접 필요한 기능을 구현해 사용하는 것도 가능하다. Callback Classes 기본 Callback 관련 클래스 Callback 베이스 클래스로부터 새로운 콜백을 만들 수 있는 클래스 LamdaCallback 간단한 커스텀 콜백을 on-the-fly로 생성할 수 있는 콜백 CallbackList 콜백의 리스트를 추출할 수 있는 컨테이너 Logging 관련 클래스 BaseLogger 에포크별로 metric의 평균을 축적하는 콜백 CSVLogger 결과를 CSV 파일로 스트리밍하는 콜백 ProgbarLogger metric을 stdout으로 프린트하는 콜백 R.. 더보기
[TensorFlow] Vision Modeling(2) Transfer Learning 🙋‍♀️ tf.keras.applications 모듈에서 사전학습된 모델 불러와 fine-tuning하기 🙋‍♀️ Layer freezing / unfreezing 구현하기 TensorFlow에서 전이학습하기 From-scratch training vs Transfer Leraning ▶ From-scratch 학습 이전 글에서는 CNN 아키텍처를 만들어 TensorFlow에서 이미지 분류 모델을 학습하는 방법을 공부했다. 내가 디자인한 모델은 학습 데이터셋을 통해 weight를 조절하며 최종 태스크를 수행할 수 있는 representation을 학습하였다. 이렇게 모델의 파라미터를 랜덤하게 초기화하고, 데이터에 대해 모델을 학습시키는 것을 from-scratch 학습이라고 한다. ▶ Transfer L.. 더보기
[TensorFlow] Vision Modeling(1) MNIST 태스크 모델링하기 🙋‍♀️ TensorFlow Conv2D와 MaxPooling2D layer을 익히고, 모델을 만들어 학습하기 1. TensorFlow Conv2D TensorFlow Conv2D> https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2D tf.keras.layers.Conv2D( filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), groups=1, activation=None, ... ) filters : 아웃풋 차원 수 kernel_size : 2d ConV 윈도우의 height & width 설정 strides : stri.. 더보기
[TensorFlow] 텐서플로우 2.0 기본 - Sequential & Functional API 🙋‍♀️ TensorFlow Sequential API와 Functional API를 사용해 모델 구조를 만들고 학습하기 0. Sequential vs Functional API Sequential API 레이어의 흐름이 순차적인 경우 사용 (layer-by-layer) 텐서가 이전 레이어에서 다음 레이어로 바로 이어질 때에 사용 가능 Functional API Sequential API보다 유연한 API로 다음의 기능을 사용할 수 있음 여러 개의 input을 받거나 여러 개의 output을 내야 하는 경우 Layer을 공유하는 경우 (샴 네트워크 등....) Residual Network 구현 1. 태스크 이해하기 : MNIST 데이터 분류 - 손으로 쓴 0-9 사이의 숫자 이미지를 인풋으로 받아 숫자.. 더보기
TensorFlow Extended (TFX) - 프로덕션 레벨의 E2E 기계학습 파이프라인 플랫폼 / Cloud Google AI Pipelines TensorFlow Extended (TFX) " 전체 머신러닝 시스템을 정의하고 배포, 모니터링할 수 있는 일련의 요소를 모두 갖춘 TensorFlow 기반 머신러닝 플랫폼" - TFX의 목표는 구글에서 머신러닝 제품을 안정적으로 할 수 있는 플랫폼을 만드는 것이었음 - 따라서 TFX는 구글 프로덕트 수준의 scalability가 확보된 라이브러리라고 할 수 있음 (scalable production scale) - 구글의 software engineering + ML development 기술이 집약된 플랫폼 TFX 파이프라인 일련의 기계학습 태스크를 수행하기 위해서는 모델 정의부터 프로덕션 레벨의 문제까지 복잡한 문제들을 고려해야 함. - 데이터 준비 과정에서는 > 준비된 데이터의 통계량을 검진, .. 더보기
TensorFlow Lite - 모바일 & IoT 디바이스를 위한 딥러닝 프레임워크 TensorFlow Lite - 텐서플로우 모델을 모바일, 임베디드, IoT 환경에서 돌릴 수 있도록 도와주는 툴. - latency가 낮고, 작은 바이너리 사이즈로 작동하기 때문에 온 디바이스로 모델 추론이 가능함. 다음과 같은 니즈에 따라 엣지 디바이스에 대한 수요는 계속해서 증가하는 추세: - 네트워크 연결이 열악한 상황에서 레이턴시는 낮은 사용자 경험을 요구하고 있음 - 개인정보를 보호할 수 있어야 함 이에 따라 2017년, 구글은 머신러닝을 엣지에서 효율적으로 작동시킬 수 있도록 도와주는 TensorFlow Lite를 공개하였고, 처리 속도, 지원 디바이스, 개발 편의성 등의 측면에서 그 기능을 매년 강화하고 있다. 한 줄로 요약하자면, TensorFlow Lite는 Android, iOS, 리.. 더보기