흔히 개발하다보면 디자인 패턴에 대한 이야기를 쉽게 접할 수 있는데요, 어떠한 구조로 개발을 하느냐는 글을 쓸때나 건물을 지을때나 설계 관점에서 굉장히 중요합니다. 건축물을 예를 들어 잠실타워같은 모습의 건물을 짓기위해선 어떤 공법을 사용하는게 좋을까요? 100층이 넘는 건물을 지을 때 비단 5층짜리 건물을 지을 때 공법과는 분명 다른 점들이 있을 것입니다. 그 반대의 경우도 마찬가지일 것이구요. 앞으로 디자인 패턴 이야기도 해보려고 하는데요, 디자인 패턴하면 떠오르는 패턴은 여러분은 어떤 것들이 있으신지요? 가장 많이 접하는 싱글톤! 이 있겠지만 오늘은 어답터 패턴에 대해서 이야기해보려고 합니다. 어답터 패턴(Adapter Pattern) 위키피디아의 정의에 따르면 어답터 패턴은 클래스의 인터페이스를 ..
Docker를 사용하는 것을 넘어서 Docker의 원리와 엔진에 대한 구조까지 알고 있지만 시간이 지나다보니 기억이 흐릿해졌습니다. 서버나 리눅스 기반 플랫폼 직무면접에 나올 가능성이 많은 개념이기도 해서 오늘은 그래서 컨테이너 기술을 위한 핵심 기술인 리눅스의 namespace와 cgroup에 대해서 알아보도록 할 것인데요. 검색하시면 굉장히 많은 글들이 나오니, 핵심만 찍고 가도록 하겠습니다. 요약하면 독립적인 환경을 만들기 위해 namespace를 사용하고 cgroups(control groups)를 사용하여 자원의 할당 등을 관리합니다. namespace 하나의 system에서 수행되지만, 각각 별개의 독립된 공간처럼 격리된 환경을 제공하는 lightweight 가상화 기술로, vm에서 쓰이는 h..
파일이나 폴더를 압축할 때 리눅스에서는 Tar를 유틸을 많이 사용하는데요. Tar가 갖고 있는 옵션들이 상당히 많습니다. 많이 쓰는 옵션은 아니어도 알아두면 좋은 옵션들이 있으니 오늘은 한번 정리해 보고 가도록 하겠습니다. Tar 옵션 우선 가장 많이 쓰는 옵션 먼저 한번 집고 가도록 하겠습니다. [압축할 때] tar -cvzf 파일명.tar.gz 또는 파일 [압축해제] tar -xzvf 파일명.tar.gz x : 묶음을 해제 c : 파일을 묶음 v : 묶음/해제 과정을 화면에 표시 z : gunzip을 사용 f : 파일 이름을 지정 p : 권한을 원본과 동일하게 유지 기능 옵션 -A, --catenate, --concatenate : 저장 파일에 tar 파일을 추가한다. -c, --create : 새 ..
그동안 AWS Solution Architect Assosicate 시험 준비로 인해 잠시 글을 작성하지 못했었는데요, 오늘 시험을 봤고 합격해서 이렇게 후기를 남겨보도록 하겠습니다. 어떤 시험을 보게 되었는지는 우선 아래 글에서 확인하고 오실게요. 2023.01.07 - [Technology/AWS, Docker] - 클라우드 자격증, 어떤 걸 어떻게 따야할까? 클라우드 자격증, 어떤 걸 어떻게 따야할까? 클라우드 시대에서 자격증은 자기를 드러내는 중요한 수단이 된지 오래입니다. 새로운 자격증은 계속 추가되서 대세가된 그런 자격증을 따지 않으면 취업조차 쉽지 않은 세대가 되었는데요. 저 hero-space.tistory.com 지난 1월7일에 어떤 자격을 취득할지 고민하고 나서 어떻게 공부할지 정하고 ..
지금가지 학습 후 양자화와 사전 양화를 진행해보았는데, 학습 후 양자화 하는 방법 중 한가지 빼 놓은 것이 있습니다. 바로 UINT8로 INT8보다 훨씬더 타입을 축소하게 만드는 것인데 이를 위해서는 몇가지 절차가 필요한데요 오늘은 그 방법에 대해서 살펴보도록 하겠습니다. 소스코드 from __future__ import absolute_import, division, print_function import tensorflow as tf import cv2 import numpy as np import pathlib import glob, os BATCH_SIZE = 1 src = "/home/hero/data/datasets/representative/" im_path = glob.glob(os.pat..
지난 시간에 학습후 경량화에 해당하는 Post Training Quanitzation 에 대해서 진행해보았는데요. 오늘은 학습 과정에서 Quantization을 가정하고 시뮬레이션을 같이 돌림으로서 정확도를 더 높이면서 경량화 할 수 있는 방법에 대해서 알아보도록 하겠습니다. Post Training(PTQ, static) : 학습 이후에 quantization 하는것 Quantization Aware Training(QAT) : 학습 과정에서 quantization을 가정하고 시뮬레이션을 같이 돌림 아무래도 학습 하면서 경량화 하는 방법을 적용하고 나서 학습 후 경량화를 한 번 더 적용하는게 경량화적으로 이점이 있을 거라 생각하면서 혹시나 학습 후 양자화 내용을 확인하지 못하신 분은 아래 링크를 빠르게..
지난 시간에 양자화가 무엇이고 Tensorflow 프레임워크 내에 있는 TFLite를 이용해서 양자화가 가능한 방법에 대해서 설명했었는데요. https://hero-space.tistory.com/146 AI 모델 경량화의 지름길 TFLite Quantization 다양한 AI 모델이 시시각각 나오는 시대에서 경량화에 대한 이슈도 그만큼 높아져 가고 있는데요. 모델이 작으면서 정확도가 좋다면 그만큼 리소스를 절약할 수 있기 때문에 다양한 산업군에서 hero-space.tistory.com 실제 AI 사용모델을 가지고 학습 완료된 모델 파일에 대한 양자화를 진행해 보도록 하겠습니다. Float16 Post Quantization [Default] from __future__ import absolute_i..
다양한 AI 모델이 시시각각 나오는 시대에서 경량화에 대한 이슈도 그만큼 높아져 가고 있는데요. 모델이 작으면서 정확도가 좋다면 그만큼 리소스를 절약할 수 있기 때문에 다양한 산업군에서 점점 니즈가 생겨나고 있습니다. 클라우드 서비스를 하는 곳에서도 AI 모델을 사용한다면 클라우드 자체에 모델의 사이즈가 작다면 클라우드 비용을 그만큼 절약할 수 있는 가능성이 높기에 리소의 제약이 심한 엣지 디바이스 뿐 아니라 클라우드 환경에서도 가능하다면 적용하는 사례가 늘고 있습니다. 경량화를 연구하는 스타트업은 아래와 같습니다. 1. 노타(https://www.nota.ai/) 2. 에너자이(https://enerzai.com/) 3. 스퀴즈비츠 (https://squeezebits.com/) 4. 날비(https:..