머신러닝

    ONNX & TensorRT & TVM

    ONNX & TensorRT & TVM

    ONNX ONNX는 확장 가능한 계산 그래프 모델의 정의와 기본 제공 연산자 및 표준 데이터 유형의 정의를 제공합니다. 각 계산 데이터 흐름 그래프는 비순환 그래프를 형성하는 노드 목록으로 구성됩니다. 노드에는 하나 이상의 입력과 하나 이상의 출력이 있습니다. 각 노드는 연산자에 대한 호출입니다. 그래프에는 목적, 작성자 등을 문서화하는 데 도움이 되는 메타데이터도 있습니다. 연산자는 그래프 외부에서 구현되지만 기본 제공 연산자 세트는 프레임워크 간에 이식 가능합니다. ONNX를 지원하는 모든 프레임워크는 적용 가능한 데이터 유형에 대한 이러한 연산자의 구현을 제공합니다. https://onnx.ai/about.html ONNX | About Technical Design ONNX provides a d..

    경량화 기법 원리 ( 가지치기, 지식증류, 양자화 )

    경량화 기법 원리 ( 가지치기, 지식증류, 양자화 )

    Prunning : 가지치기 머신러닝은 심층 신경망으로 인해 많은 발전을 이루었다. 발전 할 수록 모델 네트워크는 엄청난 양의 계산과 메모리가 필요하게 되었는데 이러한 요구 사항은 인프라 비용뿐만 아니라 엣지 디바이스와 같은 한정된 리소스를 가진 환경에 배포하는 것을 어렵게 만들었다. 이러한 리소스 요구 사항을 줄이기 위한 널리 사용되는 접근 방식 중 하나가 신경망 가지치기다. 가지치기는 Threshold 보다 크기가 낮은 가중치들을 제거하여 모델에 포함된 매개변수 수를 줄임으로써 모델을 압축하고 가중치를 재학습 하는 과정을 반복하여 간소화된 모델을 생성한다. 간소화된 모델은 매개변수가 줄어 사용되는 메모리가 줄어들게 되고 네트워크의 크기가 줄어들어 지연 시간(ms)이 줄어드는 특징이 있다. [그림1-1..

    머신러닝 모델 프로세스

    머신러닝 모델 프로세스

    머신러닝 모델 프로세스 머신러닝 모델의 핵심 머신러닝 모델을 만드는데 있어서 핵심은 “X 값이 다수 주어졌을 때 Y 값이 무엇이 나올까?에 대한 관계”를 찾는 것이다. 수학 공식으로의 표현 Y = f(x1, x2, x3, x4, ...) 와 같이 표현 할 수 있다. 예외 상황을 생각해보자 아래 그림의 예시와 같이 X1, X2 만으로는 Y를 정의 할 수 없을 경우는 어떻게 해야 할까? 이를 설명하기 위해 엡실론을 사용하고 X1과 X2의 가중치를 Wn 으로 표현하게 된다. 이를 좀 더 간단히 표현하자면 f(x)로 표현이 가능하다 f(x) = W1X1 + W2X2 + e 다음과 같이 표현하면 [정답 - 모든 값을 더한 값]은 “오차 값”이라는 것을 알 수 있으며 f(x)는 Loss Function (손실 함수..

    수치 예측, 범주 예측 (분류)

    수치 예측, 범주 예측 (분류)

    수치 예측, 범주 예측 (분류) 다변량 데이터에서 X와 Y가 있을 때 Y(정답)의 값이 어떠한 성질을 보이냐 에 따라 수치 예측 인가? 범주 예측 인가?가 나뉘게 된다. 연속형 데이터 (Regression) : 데이터 자체를 숫자로 표현 가격, 길이, 압력, 두께 …. 범주형 데이터 (Classification) : 숫자로 표시할 수 없는 데이터 (양품/불량), (정상/비정상) 수치 예측 예제 수치 예측은 아래 좌측 이미지와 같이 이뤄져 있을 때 가장 정답에 근접한 선이 무엇인가? 에 따라 모델이 결정되고 아래 우측 이미지와 같이 x 값이 들어왔을 때 y의 값을 산출하게 된다. 범주 예측 범주 예측은 예를 들어 양품과 불량 두 가지의 경우가 있을 때, 과연 새로운 노란색 점이 들어왔을 때 어떤 범주에 포..

    머신러닝, 인공지능이란?

    머신러닝, 인공지능이란?

    우선 이 글을 작성하기에 앞서 좋은 영상을 올려주신 유튜브 김성범[ 소장 / 인공지능공학연구소 ] 님께 감사 인사를 드립니다. 머신러닝, 인공지능이란? Machine Learning 머신러닝 이란 직역하자면 “기계가 스스로 학습을 한다” 이다. 다만 실제로는 스스로 학습을 하기 보다는 사람에 의해 학습을 하게 된다. 좀 더 풀이하자면 인간이 개발한 알고리즘을 컴퓨터 언어(Python, Java, C++, ….)를 통해 기계에게 학습 시키는 행위이다. 머신러닝의 데이터 다변량 데이터 관측치 \ 변수 X1 … Xi … Xp N1 X11 … X1i … X1p … … … … … … Ni Xi1 … Xii … Xip … … … … … … Nn Xn1 … Xni … Xnp - 관측치 : 샘플 (고객, 제품, 청구건..

    쿠버네티스 설치부터 서비스 배포까지 - 1.도커 설치

    쿠버네티스 설치부터 서비스 배포까지 - 1.도커 설치

    목차 쿠버네티스 설치부터 서비스 배포까지 - 1.도커 설치 쿠버네티스 설치부터 서비스 배포까지 - 2.쿠버네티스 설치 쿠버네티스 설치부터 서비스 배포까지 - 2-1. 쿠버네티스 재설치 쿠버네티스 설치부터 서비스 배포까지 - 3.쿠버네티스 Ingress Nginx 생성 쿠버네티스 설치부터 서비스 배포까지 - 4.NFS 설치 쿠버네티스 설치부터 서비스 배포까지 - 5.데이터베이스 설정 쿠버네티스 설치부터 서비스 배포까지 - 6.프론트엔드 설정 쿠버네티스 설치부터 서비스 배포까지 - 7.백엔드 설정 쿠버네티스 설치부터 서비스 배포까지 - 8.결과화면 1.도커 설치 인트로 들어가기에 앞서 저는 도커, 쿠버네티스를 이렇게 시작했습니다. 도커에 대해 ‘도’자도 모르던 어느 날 갑작스레 도커를 이용한 컨테이너화를 통..

    Backend 에서 Tensorflow, Keras 로 머신러닝, 딥러닝 작업 시 GPU 메모리 반환하지 않는 문제 해결 방법

    Backend 에서 Tensorflow, Keras 로 머신러닝, 딥러닝 작업 시 GPU 메모리 반환하지 않는 문제 해결 방법

    Backend 에서 Tensorflow, Keras 로 머신러닝, 딥러닝 작업 시 GPU 메모리 반환하지 않는 문제 해결 방법 + 저는 Pytorch 도 테스트 해보니 GPU 메모리 반환이 잘 이뤄졌습니다. How to clear GPU memory when using tensorflow or pytorch? 인트로 해당 문제는 프로젝트의 특이성으로 인해 “지정된 GPU를 사용해야 하는” 그리고 “백엔드에서 추론(inference)을 위해 GPU를 사용하는 것”과 “다른 특정한 프로그램에서도 같은 GPU를 사용”함으로써 “GPU를 공유해서 사용”해야 하는 경우 하나의 프로세스가 GPU 메모리를 반환하지 않고 잡고 있어 문제가 된 상황입니다. GPU를 사용하면 nvidia-smi 상에서 GPU 메모리가 꽉..

    모두의 딥러닝 1 - 머신러닝이란

    머신러닝이란? Machine Learning 이라는 영어 단어 그대로 풀이 하자면 기계를 학습 시키는 것이다. 머신러닝의 종류 Supervised Learning ( 지도 학습 ) 정해져 있는 데이터를 가지고 컴퓨터에게 학습 시킨다. Unsupervised Learning ( 비지도 학습 ) 정해져 있지 않은 데이터를 가지고 컴퓨터 스스로 학습 시킨다. 당근과 채찍이 있어야 한다. Reinforcement learning ( 강화 학습 ) Supervised Learning 지도 학습의 Dataset Types regression 정해져 있는 범위에서 정답을 예측한다 x (hours) y (score) 10 90 9 80 3 50 2 30 binary classification 두 가지의 분류를 기준으로..