no image
[PyTorch] 파이토치에서 TensorBoard 사용하기
텐서보드는 머신러닝 실험에 필요한 시각화 및 도구를 제공한다. 손실 및 정확도와 같은 측정항목 추적 및 시각화 모델 그래프(작업 및 레이어) 시각화 시간의 경과에 따라 달라지는 가중치, 편향, 기타 텐서의 히스토그램 확인 저차원 공간에 임베딩 투영 이미지, 텍스트, 오디오 데이터 표시 TensorFlow 프로그램 프로파일링 그 외 다양한 도구 텐서보드를 파이토치 에서도 사용 할 수 있다. 1. SummaryWriter 인스턴스 생성하기 import torch from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter() Writer 는 기본적으로 ./runs/ 디렉터리에 출력된다고 한다. 원하는 디렉터리에 출력하려면 아래와 같이 수정..
2022.02.04
[GPU] NVIDIA GPU 적정 온도 확인하기
NVIDIA 계열의 GPU의 온도를 확인하는 명령어는 다음과 같다. $ nvidia-smi -q -d temperature 아래는 현재 GPU의 Temperature 상태들을 나타낸다. ==============NVSMI LOG============== Timestamp : Thu Nov 18 15:52:50 2021 Driver Version : 460.73.01 CUDA Version : 11.2 Attached GPUs : 4 GPU 00000000:1A:00.0 Temperature GPU Current Temp : 64 C GPU Shutdown Temp : 90 C GPU Slowdown Temp : 87 C GPU Max Operating Temp : 83 C GPU Target Temper..
2021.11.18
no image
[TensorRT] QuickStartGuide
TensorRT 를 처음 접하는 사람들이 보기 딱 좋은 레퍼런스 발견. 계속 업데이트 되고 있는 것 같아서 좋다. 참고자료 1은 ipynb 로 되어있어서 쉽게 따라 해 볼 수 있으며, 참고자료 2는 TensorRT Runtime API 를 사용하는 방법에 대해 나와있다. 둘다 내용은 비슷하다. (profiling 하는 방법도 자세히 알려줬으면 좋겠다...) 참고자료 1. https://github.com/NVIDIA/TensorRT/tree/master/quickstart GitHub - NVIDIA/TensorRT: TensorRT is a C++ library for high performance inference on NVIDIA GPUs and deep learning accelerators Te..
2021.08.31
no image
[ONNX] ONNX Simplifier 사용하여 모델 간소화 하기
ONNX Simplifier 는 복잡한 ONNX node 들 즉 ONNX 모델을 단순하게 만들어주는 툴이다. 전체 계산 그래프(the whole computation graph)를 추론한 다음 중복 연산자(the redundant operators)를 상수 출력(their constant outputs)으로 대체한다. 아래 그림의 왼쪽 그림은 어떤 모델의 ONNX 원본 모델이고, 오른쪽 그림은 onnx simplifier를 거친 ONNX 모델이다. (잘 보이진 않지만... 자세히 들여다보면 간소화 된 모습을 볼 수 있었다... 모델 크기도 줄어든다.) 아래 그림을 보면 더 명확히 와닿는다. 이런 느낌이다. 불필요한 Gather 및 Unsqueeze 연산자 등의 조합을 Reshape 으로 대체한다. 원래 ..
2021.07.26
no image
[ONNX] Pytorch 모델을 ONNX 모델로 변환 할 때 dynamic_axes 지정하는 방법
LSTM 같은 모델을 ONNX 모델로 변환할 경우, 이 모델은 입력 값을 동적으로 설정할 수 도 있기 때문에 ONNX 모델로 export 시 dynamic_axes 를 설정하여 동적인 입력 값을 갖는 ONNX 모델로 변환할 수 있다. torch 공식 문서에 나와있는 내용은 다음과 같다. dynamic_axes (dict or dict, default empty dict) – a dictionary to specify dynamic axes of input/output, such that: - KEY: input and/or output names - VALUE: index of dynamic axes for given key and potentially the name to be used for expo..
2021.06.29
no image
[Pytorch] 이미지 데이터세트에 대한 평균(mean)과 표준편차(std) 구하기
이미지 데이터는 촬영된 환경에 따라 명도나 채도 등이 서로 모두 다르기 때문에 영상 기반 딥러닝 모델을 학습시키기 전에 모든 이미지들을 동일한 환경으로 맞춰주는 작업이 필요하다. 즉, 전체 이미지에 대한 화소 값의 평균(mean)과, 표준편차(standard deviation)를 구하여 이 값들을 영상에 일괄적으로 적용하는 과정이 필요하다. 보통 Imagenet 데이터 세트에서 계산된 평균과 표준을 사용하게 된다. 이는 수백만 개의 이미지를 기반으로 계산된다. 자신의 데이터 세트에서 처음부터 학습하려는 경우 평균과 표준을 계산할 수 있지만, 그렇지 않은 경우(대부분) 자체 평균 및 표준이있는 Imagenet 으로 학습된 pre-trained model 을 사용하는 것이 좋다. 파이토치 데이터 세트에서 평..
2021.05.11
no image
[TensorRT] trtexec 사용하기
1. TensorRT 를 설치 2020.04.21 - [AI Development/TensorRT] - [TensorRT] NVIDIA TensorRT 개념, 설치방법, 사용하기 2. /usr/src/tensorrt/samples 에서 make 하여 빌드하기 3. /usr/src/tensorrt/bin 에 실행파일 생성됨 4. /usr/src/tensorrt/bin/trtexec 실행 $ /usr/src/tensorrt/bin/trtexec --help 아래와 같이 사용할 수 있는 명령어 확인 $ ./trtexec --help 모델 변환 시 saveEngine 을 지정하여 모델을 저장 가능 모델 실행 시 loadEngine 을 지정하여 모델 테스트 가능 (속도 테스트) INT8 Calibration 캐시..
2021.03.30
no image
[GPU] GeForce 20 series
en.wikipedia.org/wiki/GeForce_20_series GeForce 20 series - Wikipedia Series of GPUs by Nvidia The GeForce 20 series is a family of graphics processing units developed by Nvidia.[4] Serving as the successor to the GeForce 10 series,[5] the line started shipping on September 20, 2018,[6] and after several editions, on July 2, en.wikipedia.org
2021.02.05
[ONNX] ONNX 배치 사이즈 변경하는 방법 + 삽질
onnx batch size change 라는 키워드를 통해 나온 검색 결과에 의하면, 다음 코드를 사용하면 기존에 만들어 두었던 onnx 파일의 배치 사이즈를 변경할 수 있다고 하는데, 아래 코드는 입력 사이즈만 변경하는 코드이다. 절대 아래와 같이 사용하면 안된다. import onnx def change_input_dim(model): # Use some symbolic name not used for any other dimension sym_batch_dim = "N" # or an actal value actual_batch_dim = 4 # The following code changes the first dimension of every input to be batch-dim # Modif..
2021.02.02
[DeepStream] ubuntu에서 nvidia docker + ngc 설치하기
본 포스팅은 아래 링크를 실행하기 위한 준비과정이다. 참고로 아래 링크는 NVIDIA DeepStream을 이용하여 RetinaNet 모델을 학습시키는 과정에 관한 것이다. developer.nvidia.com/blog/real-time-redaction-app-nvidia-deepstream-part-1-training/ Building a Real-time Redaction App Using NVIDIA DeepStream, Part 1: Training | NVIDIA Developer Blog Some of the biggest challenges in deploying an AI-based application are the accuracy of the model and being able to..
2021.01.27
[CUDA] 기존 CUDA 버전 삭제하기
다음과 같이 간단하게 CUDA 관련 파일들을 제거할 수 있다. 이는 기존에 설치된 CUDA 를 제거하고 새로운 버전(다운 그레이드 또는 업그레이드)을 설치하기 위함이다. 1. CUDA 제거 sudo apt-get --purge remove 'cuda*' sudo apt-get autoremove --purge 'cuda*' 2. CUDA 관련 폴더 제거 sudo rm -rf /usr/local/cuda-11.0 sudo rm -rf /usr/local/cuda
2021.01.26
no image
[DeepStream] 딥스트림 개요 및 참고자료들
DeepStream 이란 ? 딥 러닝을 활용한 비디오 분석 응용 프로그램의 고 성능 개발을 손쉽게 할 수 있도록 만든 NVIDIA의 라이브러리이다. 높은 수준의 C++ API와 고성능 런타임 (High Performance Runtime)을 통해 GPU 가속 Transcoding 과 딥러링 추론 기능을 빠르게 통합하여 보다 반응이 빠른 AI 기반 서비스를 제공할 수 있도록 한다. 이는 Intelligent Video Analytics의 보다 손 쉬운 개발을 지원하며 개발자들은 딥스트림을 사용해 실시간으로 동영상 프레임을 처리하고, 이해하며 분류 작업을 진행 할 수 있다. 또한 매우 높은 수준으로 요구되는 처리량(Throughput) 및 반응 시간(Latency)에 대한 요건을 충족 시킬 수 있다. 이러한..
2021.01.24