전체 글 192

안드로이드용 tflite image classification 모델 inference 스크립트

안녕하세요 저번 포스트에서 만들었던, 모델을 실제로 어떤 식으로 테스트 해볼수 있을까요? 다음 스크립트를 사용하면 테스트를 해볼 수 있습니다. reference: https://www.tensorflow.org/lite/inference_with_metadata/task_library/image_classifier #Imports from tflite_support.task import vision from tflite_support.task import core from tflite_support.task import processor from tensorflow_lite_support.python.task.core import base_options as base_options_module from ..

안드로이드에서 Image classification 모델 만들기(tflite model maker)

안녕하세요 오늘은 Android 에서 돌아가는 Image Classfication model에 대해서 알아보도록 하겠습니다. Image Classification은 CNN중에서도 가장 기본적인 활용인 만큼, 의미가 있을것으로 보입니다. reference: https://www.tensorflow.org/lite/models/modify/model_maker/image_classification Image classification with TensorFlow Lite Model Maker Thanks for tuning in to Google I/O. View all sessions on demandWatch on demand Image classification with TensorFlow Lite M..

로컬에서 LLM을 돌려봅시다.. (2) 장비를 맞춰봅시다

요즘 NLP를 하고 있는데, 진입장벽이 많이 높다는 생각이 듭니다. 특히 LLM 쪽은, 하드웨어 진입장벽 때문에라도 보통 사람들이 쉽게 접근하기 어렵다는 생각이 많이 듭니다. LLM의 시대를 연 ChatGPT의 경우에는.. 너무 높은 사양을 요구해서 개인이 실질적으로 하기는 힘들지만, 새로운 LLAMA의 경우에는, 특히 낮은 사양의 경우에는 충분히 인퍼런스 할만하다고 생각이 드는게 사실입니다. 시작하기 전에, 이 포스팅을 위해 참고를 많이 한 블로그를 소개하겠습니다. reference : https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/ The Best GPUs for Deep Learning in 2023 — An In-depth Anal..

Deep Learning/NLP 2023.06.01

Laplacian Method를 이용해 Blurry Image detect 하기!

input_video.mp4를 이용해서, 얼마나 Blurry 한지를 파악하고, 이를 이용해서 blurry를 detect하는 스크립트를 소개하도록 하겠습니다. 기본적인 원리는, 샤프한 이미지일수록, edge가 잘 define되어있고, blurry 한 이미지일 수록 그렇지 못하다는 점에 착안하여, variance of laplacian 의 값을 찾아서, 그 laplacian 값이 낮을 수록 더 blurry한 이미지라는 사실을 이용하는 것입니다. 이를 이용해서, 더 높은 화질의 이미지를 구할수 있을 것으로 보입니다. 물론 Threshold 값에 대해서는 여러 번 실험을 통해서 최적의 값을 구해야겠죠? reference : https://theailearner.com/2021/10/30/blur-detectio..

Image Processing 2023.05.31

로컬에서 LLM을 돌려봅시다.. (1) LAMMA 그리고 그 이후

요즘 LLM이 엄청 핫합니다. 페이스북에서 LAMMA 모델을 유출? 또는 공개를 한 이후, 또 ChatGPT의 막대한 성공 이후에 ChatGPT까지는 아니더라도 적은 컴퓨팅 파워로 어느정도의 성능을 원하는 사람들이 많아지고 있습니다. 앞으로 이런 사람들이 많은 만큼, 더 작은 모델들을 위한 연구가 계속 진행될 것으로 생각됩니다. 작게나마 현재 LLAMA(Large Language Model Meta AI)를 비롯해서 현재 어떻게 되어가고 있는지를 정리해 보도록 하겠습니다. 1. LLAMA 메타 (구 페이스북)에서 만든 작은 언어 모델. Open Source 로 만들었지만 실제로 weight을 다운받으려면 메타에 waitlist을 등록해야 됩니다. 65B, 33B, 13B, 7B 네 가지 정도의 모델이 있..

Deep Learning/NLP 2023.05.17

Cloud(GCP)를 이용한 ML-Pipeline 만들기 - 1. Vertex AI AutoML

이번에 클라우드를 이용한 ML endpoint를 만들어보기로 하였습니다. 참고한 자료는 이거 ~ https://www.youtube.com/watch?v=fw6NMQrYc6w (how to deploy machine learning model to google cloud) github : https://github.com/mrdbourke/cs329s-ml-deployment-tutorial StreamLit을 이용하였고, GCP의 AI Platform을 사용하였습니다. 프로젝트의 목적은, GCP를 이용해서 Food Classification AI 모델을 만드는 것이었습니다. 처음에 이 프로젝트를 재현해보려고 했었는데, 몇 가지 문제점이 있었습니다. 일단 GCP의 AI Platform 자체를 GCP에서 ..

Machine Learning 2023.05.03

Mobilenet 리뷰 (v1)

모바일넷 구글에서 만들어진 모델로서, V1, V2, V3가 있습니다. 각각 2017년 4월(v1), 2018년 1월(v2), 2019년 5월(v3) 입니다. 컴퓨터 비전에서 중요한 모델이고, mobilenet은 CNN의 한 종류로서, CNN을 제대로 알고 이 리뷰를 보는걸 권합니다. Mobilenet V1의 핵심 개념 Mobilenet V1 의 핵심개념은 Depthwise Seperable Convolution, Pointwise Convolution 입니다. 그리고 두개의 새로운 hyperparameter - width multiplier 와 resolution multiplier를 도입합니다. 결론적으로, accuracy를 조금만 희생을 하더라도, speed를 올릴 수 있으면 좋겠다고 생각을 합니다...

Deep Learning 2023.03.03

Yolov5 Tflite 버전을 local desktop에서 돌리면 느려지는 이유

Quantization을 하면서 여러가지 테스트를 하던 중, tflite 파일을 돌리니 그냥 .pt 파일을 돌릴 때보다 확연하게 느려지는 것을 발견하였습니다. 물론, 이 현상을 처음 발견한 것은 아닙니다. 하지만 예전에 발견했을 때에는, Nvidia gpu가 TFlite 를 지원하지 않는다는 포스팅을 보았기에, (참고자료 : https://forums.developer.nvidia.com/t/gpu-support-for-tflite/156477) 당연히 GPU를 사용하지 못하기 때문에 느리구나 생각했었는데, 이번에 테스팅을 해 보니깐, 같은 CPU를 사용할 때에도, 훨씬 느린것을 발견하였습니다. 같은 모델 사용 시에 .pt 파일 사용시 - 20~30 ms 소요, tflite 변환 모델의 경우 3000ms..

Deep Learning 2023.02.13

Pytorch를 이용한 Quantization

Quantization이란 무엇일까요? 딥러닝이라고 하면 보통 여러개의 node들과 이들로 이루어진 layer, 그리고 layer들을 서로 연결하는 activation들로 이루어져 있다고 할 수 있겠습니다. 각각의 Node들은 각자 Weight과 Bias들을 가지고 있으며, activation들은 RELU, softmax, Sigmoid, Tanh, Leaky Relu 등 여러가지가 있다고 볼 수 있을 것입니다. 레퍼런스에 따르면, pytorch 1.3, 그리고 1.4에서 torchvision 0.5에서 지원된다고 합니다. 그럼 Quantization은 왜 하는 걸까요? 위에서 말한 Weight 와 Bias들은 보통 float32로 표현되는데, float32에서 32의 표현은 32비트를 사용한다는 의미입..

Deep Learning 2023.01.25