분류 전체보기
Python (2) Dict와 Set 차이
Dict과 Set은 특정 데이터를 unique하게 참조할 수 있는 별도 객체가 있는 자료구조입니다. 데이터를 참조하는 일명 참조 객체는 키(key), 데이터를 '값(value)'이라고 한다. (Set에서 key-value쌍이 없고 참조 객체 key만 있습니다.) 하나의 참조하는 객체 키는 일반적으로 문자열을 사용하지만 hashable하다면 어떤 타입이든 상관없습니다. hashable 타입은 __hash__ 매직함수 그리고 __eq__또는 __cmp__ 매직함수를 구현한 타입입니다. 파이썬 내부 타입은 모두 매직함수가 구현되어져 있다. Dict과 Set은 모두 유일한 키를 가지므로 주어진(찾고싶은) 색인(객체)을 O(1) 시간복잡도로 찾을 수 있습니다. (리스트는 선형탐색의 경우 O(n)이 걸리는데 말이죠..
Python (1) List와 Tuple 차이
Machine learning이 대부분 python기반이다 보니 python을 더 정진하면 좋겠다는 생각에 시작합니다. 가시죠! List와 Tuple은 배열이라는 자료구조 특성을 가집니다. 아래 그림은 배열이 메모리에 할당되는 방식입니다. 배열이 연속적인 메모리에 정렬되있음을 알 수 있다. 배열이란? 정해진 고유의 순서에 따라 데이터를 나열한것을 말합니다. 순서가 있기 때문에 배열 내 특정 위치의 데이터를 O(1) 시간 복잡도로 접근 가능합니다. 그래서 시작주소를 알고 있고 순서에 따라 나열되어있기 때문에 특정 위치의 데이터에 바로 접근가능합니다. 예를 들어 3번째 위치의 데이터에 접근하고 싶으면 0x06에서 2칸떨어진 0x08위치의 값을 읽으면 됩니다. 그렇다면 List와 Tuple의 차이는 멀까? L..
Learning Features with Parameter-free Layers 논문 리뷰
이번에는 ICLR 2022에 accept된 Naver clova 논문인 Learning Features with Parameter-free Layers 을 리뷰하도록 하겠습니다. 해당 논문은 accuracy성능은 유지하면서 latency을 상당히 줄일 수 있는 (operation)layer를 제안하는 데 기여하였습니다. 1. Introduction 기존의 많은 논문들이 efficient한 operation 또는 layer들을 제안하였습니다. 여기서 efficient의 의미는 accuracy성능은 향상시키거나 유지하면서 적은 parameter와 낮은 latency를 도달할 수 있다라는 것입니다. (기존의 efficient한 operation 또는 layer는 뒤에서 더 자세히 설명드리겠습니다.) 해당 논문..
Lite Pose 논문 리뷰
이번 글에서는 CVPR 2022에 accept된 논문인 Lite Pose: Efficient Architecture Design for 2D Human Pose Estimation 을 리뷰하도록 하겠습니다. 해당 논문은 기존 2D Human Pose Estimation task를 수행하는 모델들이 high computational cost를 가진다는 문제점을 해결하고자 합니다. 그래서 Lite Pose라는 모델을 제안하여 low latency와 small parameter numbers를 가지면서 좋은 성능(mAP)을 얻어냈다는 성과를 보여주었습니다. 1. Introduction Lite Pose는 기존의 bottom-up 방식의 architecture인 (Higher)HRNet의 단점을 보완한 모델입니..
TensorFlow.js (4) YOLOv5 Live demo
YOLOv5로 실시간으로 detection하는 방법을 공유해보도록 하겠습니다. YOLOv5는 ultralytics회사에서 주도적으로 개발하는 object detection model입니다. detection 성능은 현재 2022년까지 최상의 성능을 내고있습니다. 오늘은 YOLOv5모델 중 YOLOv5n를 사용해 live demo를 진행해보도록 하겠습니다. 해당 블로그에서 실시간으로 demo가 가능하므로 카메라를 요청할수 있어요! 카메라로 어떤 정보나 해킹은 없으니 안심하고 사용하세요! ㅠㅠ 1. YOLOv5n TensorFlow.js 변환 YOLOv5에서는 다음 명령어로 TensorFlow.js모델로 변환하는 코드를 간단하게 제공하고 있습니다. git clone https://github.com/ultr..
TensorFlow.js (3) TensorFlow.js 변환
이번 글에서는 tf saved model(.pb)을 TensorFlow.js model(.json)으로 변환시키는 것을 목적으로 합니다. 2021년 google에서 나온 Efficientnetv2을 대상으로 TensorFlow.js로 변환하고 웹사이트에서 Efficientetv2으로 classification까지 해보죠! (만약 Efficientnetv2에 대해 알고싶다면 EfficientNetv2 논문 리뷰 참고해주세요~) 0. keras model를 tf saved model로 변환 TensorFlow.js 변환 하기 전에 EfficientNetv2는 keras model로 제공하고 있기 때문에 tf saved model로 변환부터 해보죠. (변환만 관심 있으시면 넘어 가시면 돼요!!) 해당 gith..