전체 글 212

[TensorRT] Tensort 기본개념

AI 서비스를 운영하는데 있어 비용적 측면은 매우 중요한 사항이 아닐 수 없다. AI의 성능은 성능적으로 매우 빠르게 증대되며, 그에 따라 VRAM과 전력소모와 같은 요구사항 스펙이 늘어날 수 밖에 없다. 이것을 상쇄시키기에 비싼 Nvidia Gpu를 많이 사용하고 싶지만, 그 비용은 Nvidia 주식가격(오늘 이 제일 쌉니다 ㅎㅎ) 만큼 비용이 많이 들것이다. 따라서 이 비용을 절감하기 위해서 효율적으로 서비스를 운영하기 위해 모델의 경량화는 필수일 것이다. 엔비디아에서는 이러한 Gpu를 사용하는 기기에서는 최적화 해주는 기능을 제공해주며, 이를 적극적으로 도입할 필요가 있다. TF-TRT(TensorFlow)나 torch2trt(Pytorch) 등을 딥러닝 프레임워크에서 지원해 주지만 최신의 모델이나..

[Python] Yolo-World 실시간 비전언어 모델

SOTA에 방문해서 최신모델들이 어떤것들이 있나 찾아보다가 2024년 1월 31일에 발표된 Yolo-World 모델을 보게 되었다. 텐센트 AI 랩에서 발표한 논문으로, 실시간으로 사용할 수 있는 비전-언어 모델이라고 한다. 이에 대해 살펴보자 (yolo-world 논문) https://arxiv.org/abs/2401.17270 YOLO-World: Real-Time Open-Vocabulary Object Detection The You Only Look Once (YOLO) series of detectors have established themselves as efficient and practical tools. However, their reliance on predefined and tra..

[C#] VSPE를 사용한 Serial통신 구현 - 2

https://datasirup.tistory.com/198 [C#] VSPE를 사용한 Serial통신 구현 - 1 Serial 통신이란? 시리얼 통신(Serial Communication)은 데이터를 한 비트씩 순차적으로 전송하는 통신 방식이며, 컴퓨터나 마이크로컨트롤러 등의 디지털 장치 간에 데이터를 주고받을 때 널리 사용된 datasirup.tistory.com 지난 포스팅에서 VSPE를 이용해서 시리얼통신의 동작을 확인해봤다. 이번에는 C# 콘솔 프로그래밍을 통해서 송신과 수신을 구현해보자 Serial 통신은 C#에서 기본적으로 제공해준다 System.IO.Ports에서 사용이 가능하다. SerialPort_DataReceived 메서드를 통해서 데이터를 읽고 이것을 누적해서 보여줄 수 있도록 한..

[C#] VSPE를 사용한 Serial통신 구현 - 1

Serial 통신이란? 시리얼 통신(Serial Communication)은 데이터를 한 비트씩 순차적으로 전송하는 통신 방식이며, 컴퓨터나 마이크로컨트롤러 등의 디지털 장치 간에 데이터를 주고받을 때 널리 사용된다. 대중적인 장치들은 USB 타입의 연결을 많이 지원하지만 테스터와 같이 산업용 장치들에서는 안전성 때문에 여전히 많이 쓰인다. 시리얼 통신은 주로 두 장치 간에 직렬로 데이터를 전송하는 방식으로 이루어진다. 각 장치는 하나 이상의 시리얼 포트(일반적으로 UART(Universal Asynchronous Receiver/Transmitter) 포트)를 통해 연결되며, 데이터는 일련의 비트로 전송된다. 일반적으로 시리얼 통신에서는 데이터 비트의 길이(일반적으로 8비트), 정지 비트의 수(보통 1..

[C#] WinForm을 활용한 계산기 만들기

WinForm에 익숙해지기 위해 기본적인 사칙연산을 수행하는 계산기 프로그램을 만들어 봤다 구현사항 - 버튼의 이벤트 처리 - 계산 로직 - 결과 표시 - 오류 처리 - 소수점 계산등의 추가기능 나누기 버튼 예시 - 사칙연산 버튼 클릭 시 어떤 계산을 수행할지 currentOperator 변수에 Operator Enum을 설정하고(Add, Sub, Mul, Div 중 하나), 계산과정 창에 수행할 계산 기호 추가함 public partial class Form1 : Form { enum Operators { None, Add, Sub, Mul, Div, Res } Operators currentOperator = Operators.None; } private void ButtonDivide_Click(o..

[C#] LINQ 기초

LINQ(Languate-INtegrated Query)는 C#에 통합된 데이터 질의 기능이다. SQL과 같은 Query 언어는 데이터베이스 언어인데 이것을 C#에 도입한 것이다. LINQ를 사용하면 컬렉션에서 데이터를 다루는 방법이 간단해진다. var sortedEven = from item in data //불러올 데이터 where item % 2 ==0 //조건 orederby item // 정렬 select item; // 선택 "data 컬렉션에 있는 데이터 item으로부터 item이 짝수이면 item 값이 정렬하여 선택한다"이며, LINQ를 사용하면 원본 데이터가 IEnumerable이나 IEnumerable 인터페이스를 상속하는 형식이어야 한다. using System; using Syste..

[C#] Predicate<T> 델리게이트

Predicate 는 Func나 Action과 같은 미리 정의된 델리게이트 형식이다. Predicate 델리게이트 메서드는 하나의 매개변수를 갖고 리턴 갑시 bool인 델리게이트다. Predicate isEven = ISEven; static bool IsEven(int n) { return n % 2 ==0; } Predicate isEven은 매개변수가 정수 하나이며, 리턴 값이 bool인 IsEvnen 메서드 이름을 지정한다. 여기서 Predicate isEven는 소문자로 시작하고 메서드 IsEven은 대문자로 시작하는 것을 주의한다. Predicate로 다음과 같이 IsEven() 메서드를 호출할 수 있다. Console.WriteLine(isEven(6)); //결과 true IsEven(in..

[C#] 람다식(Lambda Expression)

람다식은 익명 메서도를 간단하게 표현이 가능하다. 람다식은 개체로 처리되는 코드이며, 메서드와 같이 매개변수와 리턴 값을 갖는다. 람다식은 인수를 메서드에 전달 가능하며, 값을 반환할 수 있다. 람다식은 델리게이트로 표현될 수 있는 코드인데, 델리게이트형은 리턴 값이 파라미터 갯수가 에따라 정해진다. 리턴값이 없는 람다식은 Action 델리게이트에 해당하고, 리턴값이 있는 람다식은 Func 델리게이트에 해당된다. 두 개 파라미터를 갖고 리턴 값이 없는 람다식은 Action 델리게이트에 해당한다. 한 개의 파라미터와 리턴 값을 갖는 람다식은 Func 델리게이트에 해당한다. 람다식 연산자는 "=>"로 표현이 된다. => 연산자 왼쪽은 매개변수, 오른쪽은 식 또는 문장이 위치하며, 이것이 리턴값이 된다. 예를..

[C#] 델리게이트의 기본

정수 배열에서 홀수와 짝수의 갯수를 출력하고 싶을 때, int[] arr = new int[] { 3, 5, 4, 2, 6, 4, 6, 8, 54, 23, 4, 6, 4 }; Console.WriteLine($"짝수의 갯수 : {Count(arr, IsEvne)}"); Console.WriteLine($"홀수의 갯수 : {Count(arr, IsOdd)}"); 이것을 구분하기 위해 홀과 짝을 구분하는 메서드 를 만들어서 구분할 수 있다. static int EvenCount(int[] a) // 짝수 { int cnt = 0; foreach (var n in a) { if (n%2==0) { cnt++; } } return cnt; } static int OddCount(int[] a) //홀수 { in..

[Triton Inference Server] Tirton Infernece Server 시작해보기

https://developer.nvidia.com/triton-inference-server Triton Inference Server Standardizes model deployment and delivers fast and scalable AI in production. developer.nvidia.com Triton Infernece Server는 Nvidia에서 딥러닝 모델을 배포하는 Triton Inference Server는 NVIDIA에서 개발한 오픈 소스 딥러닝 모델 추론을 위한 서버 프레임워크이다. AI모델들의 배포를 위한만큼 Pytorch, TensorFlow, Onnx 등 여러 딥러닝 프레림워크의 모델 로드를 지원한다. Inference를 위한 추론 서버 운영시, python기반..