728x90

분류 전체보기 139

[Onnx] C++ GPU Inference

OS : Windows 10 GPU : RTX 2080 Tools : Visual Studio 2019 16 CUDA : 11.0 CUDNN : 8.0.6 Onnxruntime version : 1.8.1 CUDA는 매우 호환이 까다로운 녀석이다. 많은 고생을 덜기 위해선 아래의 사양을 꼭 참고해서 진행해야 한다. https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html 나의 경우에는 CUDA 11.0으로 설치되어 있기 때문에 Onnx version을 1.8.1로 진행하였다. 아래는 CPU 모델을 GPU로 변경할 때 추가로 들어가는 코드이다. OrtCUDAProviderOptions options; options.device_..

[TensorRT] Windows 환경 onnx -> trt 변경

나는 CUDA, CUDNN 이 설치되어 있다는 가정하에서 진행하였다. ( CUDA : 11.0, CUDNN: 8.02, VS : 2019 ) CUDA 환경이나, tensorflow, pytorch 등의 환경이 다르다면 아래의 링크를 기준으로 다른 버전을 참고해야 한다. https://docs.nvidia.com/deeplearning/tensorrt/release-notes/index.html 1. tensorRT 홈페이지에 들어가 환경에 맞는 zip 파일을 다운로드 받는다. (나는 8.2.1 GA 버전을 설치하였다) https://developer.nvidia.com/nvidia-tensorrt-download 2. 적당한 곳에 압축을 푼다. (난 D 드라이브에 설치하였고, {path} 라고 표현) 3..

[TensorRT] Windows 10 C++ 설치

나는 CUDA, CUDNN 이 설치되어 있다는 가정하에서 진행하였다. ( CUDA : 11.0, CUDNN: 8.02, VS : 2019 ) CUDA 환경이나, tensorflow, pytorch 등의 환경이 다르다면 아래의 링크를 기준으로 다른 버전을 참고해야 한다. https://docs.nvidia.com/deeplearning/tensorrt/release-notes/index.html 1. tensorRT 홈페이지에 들어가 환경에 맞는 zip 파일을 다운로드 받는다. (나는 8.2.1 GA 버전을 설치하였다) https://developer.nvidia.com/nvidia-tensorrt-download 2. 적당한 곳에 압축을 푼다. 3. Visual Studio를 열고, 속성 페이지에 들어간..

[TensorRT] EA vs GA vs RC 차이

EA는 Early Access의 약자로 미완성이지만 새로 추가된 기능을 제공받을 수 있다는 장점이 있고, GA는 General Availability의 약자로 최신버전은 아니지만, 기능이 안정적으로 지원된다는 점, RC는 Release Candidate의 약자로 직역하면 릴리즈 후보로, 아직 릴리즈 직전의 상태를 말한다. 정리 : GA 버전 쓰는 게 좋다 참고 https://stackoverflow.com/questions/57312160/what-is-the-difference-between-tensorrt-ga-and-rc https://forums.developer.nvidia.com/t/ea-vs-ga/184403

[C++] onnx 결과값 Mat 타입으로 변경

segmentation 모델 결과를 onnx로 받아보려고 시도하다가 잘 안되었는데, 방법을 찾아 공유하고자 글을 쓴다. 나의 경우는 segmentation 모델 결과가 128 x 128 x 1 의 float 형태의 결과였다. 따라서 128 x 128 크기의 Mat에 _result 포인터를 넣었더니 해결되었고, 0~1사이 값이므로 255를 곱해 8bit로 변경하였더니 결과가 잘 나왔다. auto output_tensors = session_.Run(Ort::RunOptions{ nullptr }, input_names.data(), inputTensors.data(), 1, output_names.data(), 1); float* _result = output_tensors.front().GetTensor..

[백준] 1937 욕심쟁이 판다 파이썬 후기

링크 : https://www.acmicpc.net/problem/1937 DP와 DFS를 적절히 섞어서 푸는 문제이다. 오래 매달리다가 해답을 검색해보고 풀었다. 푸는 방법 1. dfs에서 첫 방문하는 지점을 1로 초기화한다. 2. 주변 4방향에 더 큰 값이 있는지 비교해보고, 있으면 현재값과 비교해 더 큰 값을 취한 뒤, 더 방문할 곳이 없으면 반환한다. 3. 모든 지점에 대해 1,2를 반복한다. 오래 걸렸던 이유 1. 고정관념 백준에서 다이나믹 프로그래밍 카테고리에 있어 DP만으로 풀어보려고 했는데, DP만으로 불가능하단 생각이 들고나서야 DFS를 생각하고 접근해보았다. 이 생각이 들기까지 시간이 오래 걸린 것도 나의 공부가 모자란 것도 컸다. 다음부턴 문제를 꼭 DP라고만 생각하지 않고 어떻게 풀..

Sleep-EDF 데이터셋 정리 및 추출

Sleep-EDF 데이터셋은 수면다원검사(Polysomnography, PSG)라고 하여 흔히 병원에서 수면검사를 받을 때 아래와 같은 수많은 센서를 붙여 수면 시간동안 신체정보를 받는데, 이를 기록해둔 오픈데이터셋이다. 데이터셋은 https://physionet.org/content/sleep-edfx/1.0.0/ 홈페이지에서 받을 수 있고, 8.1GB 정도의 용량이다. 받고 나면 sleep-cassette, sleep-telemetry 라는 폴더를 볼 수 있는데, 홈페이지 설명을 빌리자면 cassette는 카세트, 시간순으로 쭉 기록한 데이터고, Telemetry는 테마제팜(temazepam)이라는 불면증 치료제 효과를 확인하기 위해 만든 데이터셋이라고 한다. 개인적으로는 카세트 데이터를 쓸 것으로 ..

728x90