Machine Learning

    torch eval, no_grad 사용시 gpu 사용량 테스트

    torch eval, no_grad 사용시 gpu 사용량 테스트

    resnet152 test resnet152를 사용하여 환경별 GPU 사용량 테스트 NVIDIA Environment nvidia gpu driver version : 470.103.01 cuda version : 11.4 gpu device : NVIDIA GeForce RTX 3090 NVIDIA GeForce RTX 3090 memory size : 24GB cuda : 8.5 cuda core : 104996 rt core : 82 tensor core : 328 etc torch version : 2.0.0 torch cuda version : 11.7 resnet152 model file size : 230.4 MB num_params : 60,192,808 test image : dog.jp..

    Install Apache TVM

    Install Apache TVM

    Apache TVM 이란? CPU, GPU 및 기계 학습 가속기를 위한 오픈 소스 기계 학습 컴파일러 프레임워크 백엔드에서 계산을 효율적으로 최적화하고 실행할 수 있도록 하는 것을 목표로 한다 TVM 흐름 지원하는 딥러닝 모델 컴파일 프레임워크 Tensorflow Keras Core ML MXNet ONNX Pytorch DarkNet Caffe2 → ONNX CNTK → ONNX … 실행 가능한 위치 or 하드웨어 CPU GPU ARM AMDGPU FPGA NVCC ….. TVM 설치 git clone git clone --recursive tvm tvm 폴더에서 진행 cd tvm 패키지 설치 sudo apt-get update sudo apt-get install -y python3 python3-d..

    ONNX Quantization Test

    mobileNet float32 → uInt8 예제 https://github.com/microsoft/onnxruntime-inference-examples GitHub - microsoft/onnxruntime-inference-examples: Examples for using ONNX Runtime for machine learning inferencing. Examples for using ONNX Runtime for machine learning inferencing. - GitHub - microsoft/onnxruntime-inference-examples: Examples for using ONNX Runtime for machine learning inferencing. github...

    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..

    Docker에서 TensorRT 설치

    Docker에서 TensorRT 설치

    Docker에서 TensorRT 설치 환경 gpu가 존재하는 컴퓨터 nvidia driver가 설치되어 있는 컴퓨터 Docker가 설치 (유) Docker Image : nvidia/cuda:11.4.1-cudnn8-devel-ubuntu20.04 도커 컨테이너 생성 명령어 sudo docker run -itd --gpus '"device=0"' --name=edge_device --restart=always -p 10000:8080 -v /mnt/edge_device:/mnt/edge_device nvidia/cuda:11.4.1-cudnn8-devel-ubuntu20.04 /bin/bash 도커 컨테이너 접속 docker exec -it edge_device /bin/bash 텐서RT 다운로드 아래 ..

    선형회귀모델

    선형회귀모델

    선형회귀모델 변수 사이의 관계 X 변수와 Y변수 사이의 관계 확정적 관계 확률적 관계 확정적 관계 : X 변수만으로 Y를 100% 표현 Y = f(x) 확률적 관계 : X변수와 오차항이 Y를 표현 Y = f(x) + e 선형회귀모델이란? 출력변수 Y를 입력변수 X들의 선형결합으로 표현한 모델 선형회귀 모델링 목적 X변수와 Y변수 사이의 관계를 수치로 설명 미래의 반응 변수 (Y) 값을 예측 선형회귀 모델 분류 X변수의 수, X 변수와 Y변수의 선형성 여부에 따라 구분 선형 모델 단순형 선형 비선형 다수형 선형 비선형 선형회귀 모델의 구성 Y = f(X)로 설명이 가능한 부분 + f(X)로 설명이 불가능한 e 부분으로 이루어져 있다. 선형회귀 모델 가정 확률오차 가정 : 모든 점의 오차들은 정규분포(평균)..

    머신러닝 모델 프로세스

    머신러닝 모델 프로세스

    머신러닝 모델 프로세스 머신러닝 모델의 핵심 머신러닝 모델을 만드는데 있어서 핵심은 “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 (손실 함수..