트레이딩을 위한 ONNX 학습 - 페이지 13

 

C# 및 OpenCVSharp를 사용한 얼굴 감지 - 실용적인 ML.NET 사용자 그룹 2022년 1월 19일



C# 및 OpenCVSharp를 사용한 얼굴 감지 - 실용적인 ML.NET 사용자 그룹 2022년 1월 19일

C#에서 OpenCVSharp를 사용한 얼굴 감지에 대한 비디오 자습서는 컴퓨터 비전 작업을 위한 오픈 소스 라이브러리인 OpenCVSharp 라이브러리를 .NET 래퍼와 함께 소개하는 스피커로 시작되었습니다. 비디오는 눈을 포함하여 탐지를 위해 다양한 분류기를 사용하고 분류기 선택에서 실험의 중요성에 대해 논의했습니다. 이 자습서는 청취자가 코드 스니펫, Visual Studio 및 .NET 대화형 노트북을 사용하여 웹캠을 사용하여 얼굴 및 눈 감지 프로그램을 구축하는 데 도움을 주었습니다. 투명 이미지를 오버레이하고 매트 개체를 적절하게 처리하는 방법을 포함하여 다양한 측면도 자세히 설명했습니다. 연사는 OpenCVSharp와 .NET의 사용 용이성, 속도 및 호환성을 인정했지만 예제 부족과 불확실한 장기 지원도 언급했습니다.

  • 00:00:00 이 섹션에서 발표자는 C#에서 OpenCVSharp를 사용한 얼굴 감지 주제를 소개하고 컴퓨터 비전 작업을 위한 오픈 소스 라이브러리인 OpenCV용 .NET 래퍼인 OpenCVSharp가 무엇인지에 대한 간략한 개요를 제공합니다. 연사는 이미지 조작, 얼굴 감지 및 얼굴 인식 모델을 포함하여 OpenCVSharp의 다양한 기능에 대해 설명합니다. 발표자는 또한 OpenCVSharp에 대한 C# 예제는 많지 않지만 API의 유사성으로 인해 C#으로 쉽게 변환할 수 있는 많은 Python 예제가 있다고 언급합니다. 그런 다음 발표자는 OpenCVSharp를 사용하여 Python과 C#에서 특정 작업을 수행하는 방법에 대한 몇 가지 예를 나열합니다.

  • 00:05:00 이 섹션에서 발표자는 OpenCVSharp의 다양한 특징과 관리 라이브러리를 기본 바인딩 라이브러리와 페어링하는 것의 중요성에 대해 설명합니다. 그런 다음 Visual Studio Code 및 .NET 대화형 노트북을 사용하고 NuGet 패키지를 로드하고 하드 캐스케이드 XML 파일을 사용하여 얼굴 감지를 수행하는 몇 가지 예를 시연합니다. 코드는 하드 캐스케이드 분류기를 가져오고 이를 사용하여 얼굴을 감지하고 이미지에서 그 주위에 상자를 그립니다.

  • 00:10:00 이 섹션에서 발표자는 잠재적인 메모리 누수를 방지하기 위해 OpenCVSharp에서 "매트 개체"를 적절하게 처리하고 폐기하는 것의 중요성을 설명합니다. 분류자가 흑백 이미지에서 가장 잘 작동하므로 소스 이미지를 로드하고 얼굴 감지를 위한 새로운 빈 "회색 이미지"를 만드는 방법을 보여줍니다. 그런 다음 "cb2 equalized histogram"을 사용하여 이미지의 밝기와 대비를 정규화하여 캐스케이드 분류를 개선하는 방법을 설명합니다. 발표자는 또한 오탐지 및 아티팩트를 방지하기 위해 얼굴 감지에 대한 최소 크기 요구 사항을 사용하는 방법에 대해서도 설명합니다. 마지막으로 "cv2 직사각형"을 사용하여 감지된 얼굴 주위에 상자를 그리고 창을 열어 결과 이미지를 표시하는 방법을 보여줍니다. 가중치 키는 사용자가 창을 닫는 방법으로 사용됩니다.

  • 00:15:00 비디오의 이 섹션에서 발표자는 정적 이미지를 표시하는 데 필요하지 않기 때문에 웨이트 키가 들어올 것으로 예상하지 않는 방법에 대해 설명합니다. 그러나 그들은 웹캠 데모를 볼 때 더 많은 역할을 할 것입니다. 또한 기본 네임스페이스에 대한 질문에 답하고 얼굴뿐만 아니라 얼굴의 눈도 감지하는 방법을 설명합니다. 그들은 정면 얼굴과 눈 캐스케이드라는 두 개의 캐스케이드 파일을 가져오는 방법과 눈의 추가 감지를 시도하고 수행하기 위해 얼굴 사각형을 반복하는 방법에 대해 논의합니다. 그들은 관심 영역(ROI)을 생성하고 얼굴 주위에 사각형을 그리는 것과 관련된 프로세스를 설명합니다.

  • 00:20:00 이 섹션에서 강사는 OpenCVSharp에서 중첩된 캐스케이드를 사용하여 얼굴 이미지에서 눈을 감지하는 프로세스를 진행합니다. 그들은 이전에 감지된 관심 있는 얼굴 영역을 가져와서 회색으로 변환한 다음 특히 눈을 감지하기 위해 중첩된 캐스케이드를 적용합니다. 이를 통해 감지된 눈 주위에 원을 그릴 수 있으며 원의 중심점이 감지된 눈의 위치가 됩니다. 그들은 감지된 눈의 크기가 감지된 얼굴의 크기보다 작아야 한다는 점에 주목하고 약간의 시행착오를 통해 서로 다른 크기의 얼굴에서 눈을 더 잘 감지하기 위해 중첩 캐스케이드의 매개변수를 조정합니다. 전반적으로 프로세스가 완벽하지는 않지만 대부분의 경우 눈을 감지하는 데 효과적입니다.

  • 00:25:00 이 섹션에서 화자는 얼굴 감지에 사용할 수 있는 다양한 분류기와 특정 상황에 가장 적합한 분류기를 결정하기 위한 실험의 필요성에 대해 논의합니다. 화자는 또한 감지 프로세스에 아티팩트가 있을 수 있음을 인정하고 프로세스를 생산화하는 경우 논리를 사용하여 제거할 것을 제안합니다. 그런 다음 발표자는 웹캠 사용과 웹캠 얼굴 및 눈 감지 코드가 이전 예제와 어떻게 유사한지에 대해 논의하며 유일한 차이점은 비디오 캡처 도입과 창 객체 생성입니다. 마지막으로, 웹캠에 캡처된 초당 프레임에 큰 영향을 미치기 때문에 키가 눌렸는지 확인하기 위해 프레임 사이에 1밀리초를 기다리는 것의 중요성이 강조됩니다.

  • 00:30:00 이 섹션에서 발표자는 C#을 사용하여 OpenCVSharp의 얼굴 감지 기능을 시연합니다. 이 코드는 웹캠 데이터를 캡처하고 주위에 상자를 배치하여 대상의 얼굴을 감지합니다. 발표자는 이미지를 표시하는 창에 포함되어야 하는 OpenCVSharp의 구별 기능인 가중치 키에 대해 설명합니다. 계속해서 가중치 키 방법이 실행되는 시기에 대한 질문에 답하고 사용 방법을 설명합니다. 이 섹션에는 웹캠 데이터 캡처 코드에 초당 프레임을 추가하는 예도 포함되어 있습니다. 발표자는 가중치 키를 잊어버리면 문제가 발생할 수 있으므로 가중치 키를 포함하는 것의 중요성에 주목하고 코드의 모든 창을 파괴하는 방법을 보여줍니다.

  • 00:35:00 이 섹션에서 발표자는 C# 및 OpenCVSharp를 사용하여 화면에 텍스트를 입력하고 색상을 제어할 수 있는 방법에 대해 설명합니다. 그들은 얼굴과 눈 주위의 상자에 대한 색상을 정의하는 방법과 프레임 속도가 초당 20프레임 미만인 경우 빨간색, 20보다 크거나 같은 경우 fps 색상이라는 또 다른 색상을 정의하는 방법을 설명합니다. 그들은 또한 가중치 키의 지연 효과와 이것이 프레임 속도에 미치는 영향을 보여줍니다. 그들은 거기에 들어가는 모든 변수와 함께 초당 20개 이상의 프레임을 얻을 수 있으면 행복하다고 언급하여 잠시 동안 목표를 달성할 수 있습니다.

  • 00:40:00 이 섹션에서 발표자는 이미지를 오버레이하는 방법을 시연하고 이미지의 투명도 요소를 유지하기 위해 IamReadModes를 변경하지 않고 사용하는 것의 중요성을 설명합니다. 그들은 선글라스를 예로 들며 모든 것을 완벽하게 만들 시간이 없었기 때문에 코드가 최적화되지 않았음을 인정합니다. 그들은 또한 얼굴 사각형의 x 및 y 좌표를 사용하는 대신 선글라스를 놓을 위치의 좌표를 하드 코딩하여 속임수를 씁니다. 발표자는 실제 시나리오에서 오버레이를 배치할 위치를 알려면 MakeOverlay 메서드에 x 및 y 좌표를 전달해야 한다고 설명합니다. 또한 직사각형의 크기에 따라 오버레이 이미지의 크기를 조정하는 데 사용해야 하는 크기 조정 방법을 언급하지만 부정행위 사례에서는 필요하지 않습니다.

  • 00:45:00 이 섹션에서는 발표자가 투명 오버레이 이미지를 기본 이미지에 병합하는 과정을 설명합니다. 먼저 투명 오버레이 이미지는 투명 채널을 유지하면서 RGB로 변환됩니다. 그런 다음 RGB 채널이 원래 오버레이에서 추출되어 새 맵에 병합됩니다. 그 후 투명도 채널을 "오버레이 알파 3 채널"이라는 새 맵에 세 번 복제하고 비트 연산을 수행하여 새 맵과 병합합니다. 마지막으로 선글라스가 놓일 관심 영역을 정의하고 얼굴 사각형을 추출하여 선글라스 병합을 위한 얼굴 관심 영역으로 사용합니다.

  • 00:50:00 이 섹션에서는 스피커가 OpenCVSharp를 사용하여 감지된 얼굴에 선글라스를 추가하는 과정을 간략하게 설명합니다. 비트 연산을 사용하여 감지된 얼굴 위에 선글라스를 놓고 투명도를 유지한 다음 얼굴을 원래 위치로 되돌립니다. 발표자는 또한 사용 용이성, 속도 및 .NET과의 호환성과 같은 OpenCVSharp의 몇 가지 장단점을 강조하지만 예제가 부족하고 장기 지원이 불확실합니다. 발표자는 다양한 리소스를 제공하고 사용자가 GitHub에서 OpenCVSharp 프로젝트를 후원하도록 권장합니다. 참가자는 OpenCVSharp가 Raspberry Pi와 같은 마이크로 컨트롤러에서 실행될 수 있는지 묻고 발표자는 Linux Arm 버전으로 가능해야 한다고 응답합니다.
Face Detection Using C# and OpenCVSharp - Practical ML.NET User Group 01/19/2022
Face Detection Using C# and OpenCVSharp - Practical ML.NET User Group 01/19/2022
  • 2022.01.20
  • www.youtube.com
Learn how you can quickly and easily perform face detection in C# using OpenCVSharp. OpenCvSharp is a cross platform wrapper of OpenCV for .NET. We'll explor...
 

ML.NET을 사용하여 Custom Vision ONNX 모델에 대한 예측



ML.NET을 사용하여 Custom Vision ONNX 모델에 대한 예측

이 YouTube 비디오에서 발표자는 ML.NET을 사용하여 맞춤형 비전 ONNX 모델을 예측하는 방법에 대해 설명합니다. 여기에는 사용자 지정 비전 서비스에서 모델을 내보내고 ML.NET 프로젝트로 가져오는 작업이 포함됩니다. 구현에는 이미지 크기 조정, 이미지 픽셀 추출, 이미지 데이터를 로드하기 위한 데이터 컨텍스트 및 빈 데이터 목록 생성, ML.NET 프레임워크를 사용하여 모델에서 예측 및 결과 출력이 포함됩니다. 이 비디오는 또한 Neuron이라는 도구를 사용하여 모델의 출력 이름을 얻는 방법과 주어진 테스트 이미지에 대해 모델에서 경계 상자 정보를 얻는 방법을 보여줍니다. 발표자는 경계 상자 주위에 사각형을 그리는 방법과 Graphics API를 사용하여 예측된 레이블을 표시하는 방법도 보여줍니다. ML.NET API와 이미지 크기 조정을 사용한 ONNX 모델의 구현은 구현의 가장 중요한 부분으로 강조됩니다.

  • 00:00:00 ML.NET 프레임워크를 사용하여 맞춤형 비전 ONNX 모델을 예측합니다. 이렇게 하려면 먼저 사용자 지정 비전 서비스에서 모델을 내보내고 ML.NET 프로젝트로 가져와야 합니다. 모델이 프로젝트에 있으면 모델에 대한 예측을 수행하기 전에 이미지 크기를 조정하고 이미지 픽셀을 추출하는 파이프라인을 만들 수 있습니다. 이렇게 하려면 여러 NuGet 패키지를 다운로드하여 프로젝트에 추가하고 새 데이터 컨텍스트와 빈 데이터 목록을 만들어 이미지 데이터를 로드해야 합니다. 마지막으로 ML.NET 프레임워크를 사용하여 모델에 대한 예측을 수행하고 결과를 출력합니다.

  • 00:05:00 이 섹션에서 연사는 Custom Vision에서 다운로드한 모델의 출력 이름을 가져오기 위해 Neuron이라는 도구를 사용하는 방법에 대해 설명합니다. Neuron은 입력 및 출력을 포함하여 모델에 대한 정보를 제공하는 작은 데스크톱 앱입니다. 출력 이름을 얻으면 변환을 호출하여 모델을 적용할 때 출력 열 이름으로 사용할 수 있습니다. 발표자는 또한 예측 엔진을 만들고 헬퍼 메서드를 사용하여 주어진 테스트 이미지에 대한 모델에서 경계 상자 정보를 얻는 방법을 보여줍니다.

  • 00:10:00 이 섹션에서 연사는 경계 상자를 가져오고 주위에 사각형을 그리고 Graphics API를 사용하여 이미지에 대해 예측된 레이블을 표시하는 방법을 보여줌으로써 개체 감지 모델의 구현을 계속합니다. 최대 신뢰도를 가진 하나의 경계 상자만 고려되는 상위 경계 상자를 얻기 위해 최대 신뢰도를 얻습니다. 이 코드는 또한 도우미 메서드를 사용하여 사각형을 그리고 신뢰도 백분율을 나타내기 위해 설명 문자열이 반환됩니다. 마지막으로 테스트 이미지는 나중에 참조할 수 있도록 파일 시스템에 저장됩니다. 발표자는 구현의 가장 큰 부분이 이미지 크기 조정과 ML.NET API를 사용한 ONNX 모델의 적용이라고 강조합니다.
Predicting on a Custom Vision ONNX Model with ML.NET
Predicting on a Custom Vision ONNX Model with ML.NET
  • 2020.01.27
  • www.youtube.com
How to use a model from the Custom Vision service in ML.NET to make predictions.Code - https://github.com/jwood803/MLNetExamples/blob/master/MLNetExamples/Cu...
 

ONNX로 이식 가능한 신경망 만들기



ONNX로 이식 가능한 신경망 만들기

이 YouTube 비디오에서 Ron Dagdag는 기계 학습의 추론 측면에 중점을 두고 ONNX로 신경망을 이식할 수 있게 만드는 방법을 설명합니다. ONNX는 다양한 처리 장치 및 장치에서 기계 학습 모델의 이식성을 허용하는 오픈 소스 프레임워크입니다. 발표자는 모델을 ONNX로 변환하고 모델을 애플리케이션과 배포 및 통합하고 클라우드 및 에지 배포에 사용하는 프로세스에 대해 설명합니다. 또한 Node.js에서 ONNX 모델을 로드하고 ONNX Runtime을 사용하여 이미지 분류 모델을 웹 및 모바일 애플리케이션에 통합하는 방법을 보여줍니다. ONNX 모델은 대상 플랫폼에 효율적으로 배포할 수 있도록 다양한 프레임워크에서 생성할 수 있는 개방형 표준입니다.

  • 00:00:00 이 섹션에서 Ron Dagdag는 기계 학습의 추론 측면에 중점을 두고 ONNX를 통해 이식 가능한 신경망을 만드는 개념을 소개합니다. 그는 프로그래밍 대 머신 러닝의 일반적인 프로세스와 학습 데이터, 학습 프레임워크, 모델 및 알고리즘 생성을 위한 추론 런타임의 필요성에 대해 설명합니다. 그는 또한 프레젠테이션의 초점이 ONNX를 사용하여 모델을 응용 프로그램에 통합하는 추론 측면에 있을 것이라고 언급했습니다.

  • 00:05:00 이 섹션에서 연사는 CPU, GPU, FPGA와 같은 다양한 처리 장치와 클라우드 또는 IoT와 같은 다양한 장치에서 기계 학습 모델의 이식성을 허용하는 프레임워크로 ONNX를 소개합니다. 그들은 11,000개 이상의 별과 200명의 기여자를 얻은 GitHub의 오픈 소스이며 어디에서나 사용할 수 있는 형식이라는 점에서 PDF와 비교합니다. 연사는 다른 애플리케이션과 함께 배포해야 하거나 Azure Percept와 같은 에지 장치에서 실행하는 것과 같이 높은 추론 대기 시간이 필요한 Python에서 학습된 모델을 처리할 때 ONNX를 사용할 것을 권장합니다.

  • 00:10:00 이 섹션에서 발표자는 특정 운영 체제(OS) 또는 하드웨어에서 프로그래밍된 응용 프로그램을 다른 OS 또는 하드웨어에서 실행되도록 변환해야 하는 시나리오에 대해 설명합니다. 해결책은 프로그램을 ONNX 형식으로 변환하는 것입니다. ONNX는 다른 프레임워크에서 생성된 모델을 실행할 때와 학습 시간이 너무 오래 걸릴 때 사용됩니다. 그런 다음 연사는 ONNX 모델을 얻는 네 가지 방법을 자세히 설명합니다. 그 중 첫 번째는 GitHub의 ONNX 모델 동물원입니다. 그런 다음 기존 모델에서 변환하고 Azure 기계 학습 또는 자동화된 기계 학습을 사용하여 교육하는 맞춤형 비전 서비스가 이어집니다.

  • 00:15:00 이 섹션에서는 연사가 모델을 ONNX로 변환하는 프로세스에 대해 설명합니다. 이 프로세스는 Python으로 작성된 모델에 국한되지 않으며 ML.NET으로도 수행할 수 있습니다. 연사는 ML.NET 모델을 변환한 다음 ONNX에 저장하는 방법을 보여줍니다. 이미지 분류 및 개체 감지 모델을 포함하여 ONNX로 변환된 많은 모델을 사용할 수 있습니다. Custom Vision Service를 사용하여 이미지를 업로드하고 태그를 지정하여 다양한 유형의 개체를 분류할 수도 있습니다. GitHub는 소프트웨어 엔지니어가 입력 및 출력을 포함하여 ONNX 모델의 모양을 시각화할 수 있는 Netron이라는 앱을 제공합니다. 발표자는 ONNX 모델을 PyTorch 또는 TensorFlow에서 변환하여 생성할 수도 있다고 설명합니다.

  • 00:20:00 이 섹션에서 발표자는 회귀 모델을 생성하고 다른 기계 학습 프레임워크를 사용할 때 이식성을 허용하는 오픈 소스 형식인 ONNX로 내보내는 방법을 보여줍니다. C# 및 ml.net을 사용하여 화자는 급여 데이터를 데이터 프레임에 로드하고 파이프라인을 사용하여 레이블 열 및 입력(경력 연수)을 지정하여 회귀 모델을 훈련합니다. 모델을 평가한 후 모델, 샘플 데이터 및 스트림을 컨텍스트에 전달하여 ONNX로 변환하여 Netron을 사용하여 볼 수 있는 파일을 생성합니다. 연사는 ONNX를 PyTorch 및 TensorFlow와 같은 프레임워크 간에 기계 학습 모델을 변환하기 위한 중간 형식으로도 사용할 수 있다고 언급합니다.

  • 00:25:00 이 섹션에서 발표자는 ONNX 모델을 애플리케이션에 배포하고 통합하는 프로세스에 대해 설명합니다. 모델을 ONNX로 변환하면 다양한 프레임워크 간에 호환이 가능하며 사용자는 전이 학습 및 미세 조정을 위해 ONNX 모델을 사용할 수도 있습니다. 연사는 쉬운 추적 및 배포를 위해 버전 관리와 컨테이너 레지스트리와 같은 모델 레지스트리 보유의 중요성을 강조합니다. 또한 연사는 데이터 과학자가 "레시피"를 구축하는 데 필요한 다양한 기술 집합과 "베이커리"를 시작하고 AI를 응용 프로그램에 통합하는 엔지니어에게 필요한 기술 집합을 강조합니다. 이 강연에서는 Azure Machine Learning, Ubuntu 또는 Windows Server, IoT 에지 장치와 같은 ONNX 모델의 배포를 지원하는 다양한 프레임워크 및 플랫폼을 다룹니다.

  • 00:30:00 이 섹션에서 발표자는 클라우드 및 에지 배포를 모두 다루는 기계 학습 모델의 배포에 대해 논의합니다. 발표자에 따르면 에지 배포는 데이터 처리가 사용자에게 얼마나 가까운지에 관한 것이며 클라우드보다 훨씬 더 가깝습니다. 에지에서 AI를 실행하면 클라우드에 업로드하지 않고 로컬에서 데이터를 처리할 수 있으므로 짧은 대기 시간과 비용 절감에 이상적입니다. 또한 로컬에서 실행하는 것이 더 유연하고 개인 정보 보호 준수를 보장할 수 있습니다. 특히 네트워크 외부에서 이미지 공유를 금지하는 규칙을 처리할 때 중요합니다. 에지에서 기계 학습 모델의 배포를 용이하게 하기 위해 Microsoft는 신경망뿐만 아니라 기존 기계 학습 사양을 지원하고 고성능 추론을 수행할 수 있으며 하드웨어 가속기를 위한 확장 가능한 아키텍처가 있는 오픈 소스 ONNX 런타임을 개발했습니다.

  • 00:35:00 이 섹션에서 발표자는 ONNX를 사용하여 신경망을 이식성 있게 만드는 방법에 대해 설명합니다. ONNX 런타임을 사용하면 GPU, CPU, VPU 등 다양한 처리 장치에서 모델을 실행할 수 있으며 Windows, 웹 브라우저, Node.js 및 React Native 애플리케이션과 같은 다양한 플랫폼에서 사용할 수 있습니다. 발표자는 Node.js 애플리케이션에서 ONNX 모델을 로드하는 방법과 원하는 출력을 수신하기 위해 입력 값을 전달하는 방법에 대한 데모를 보여줍니다. 개발자는 ONNX 런타임을 사용하여 하드웨어 호환성에 대한 걱정 없이 기계 학습 모델을 애플리케이션에 쉽게 통합할 수 있습니다.

  • 00:40:00 이 섹션에서는 최적화된 WebAssembly 및 WebGL 기술을 사용하여 브라우저에서 직접 ONNX 모델을 실행하도록 설계된 JavaScript 라이브러리인 ONNX 런타임 웹에 대해 설명합니다. 브라우저에서 추론하는 이 방법은 더 빠르고 안전하며 저렴하면서도 오프라인에서도 사용할 수 있습니다. 그러나 특정 하드웨어 사양이 필요한 대형 모델에는 효율적이지 않을 수 있으며 다운로드 시간이 길어질 수 있습니다. 이 비디오는 ONNX Runtime Web을 사용하여 우는 아기의 이미지를 분석하는 예를 제공하며 모델이 HTML 파일에 통합되고 런타임을 사용하여 실행되는 방법을 보여줍니다.

  • 00:45:00 비디오의 이 섹션에서 발표자는 ONNX 모델 동물원과 ONNX 런타임 웹을 사용하여 이미지 분류 모델을 웹 애플리케이션에 통합하는 방법을 보여줍니다. 웹 앱에 이미지를 업로드하고 크기를 조정하고 회색조와 텐서로 변환하여 사전 훈련된 모델에 맞게 준비합니다. ONNX 런타임 웹을 사용하여 모델이 로드되고 처리된 이미지를 공급하여 이미지에 표현된 감정을 예측합니다. 그런 다음 발표자는 React Native 앱에서 사전 훈련된 ONNX 모델의 채점을 시연합니다.

  • 00:50:00 이 섹션에서 발표자는 ONNX 런타임 모바일을 Android 및 iOS 플랫폼에서 최적화된 ONNX 모델을 실행하기 위한 경량 추론 솔루션으로 사용하는 방법에 대해 설명합니다. ONNX 런타임 모바일을 애플리케이션에 통합하려면 ort 형식이라는 사전 최적화된 ONNX 모델에 대한 바이너리 크기를 최소화하는 npm install ONNX 런타임 반응 네이티브를 사용할 수 있습니다. onnxruntime.ai에서 제공되는 튜토리얼은 노드, 웹 브라우저, 모바일 반응 등과 같은 다양한 플랫폼을 사용하여 ONNX 모델을 배포하는 방법을 단계별로 설명합니다. 호환성 차트는 Chrome이 Windows 10, macOS, Ubuntu에서 웹 어셈블리 및 webGL을 지원함을 보여줍니다. , iOS 및 Android. ONNX 모델은 대상 플랫폼에서 효율적으로 올바른 도구를 사용하여 배포하기 위해 다양한 프레임워크에서 생성할 수 있는 개방형 표준입니다.
Making neural networks portable with ONNX
Making neural networks portable with ONNX
  • 2021.11.28
  • www.youtube.com
Making neural networks portable with ONNXBy Ron Dagdag - Lead Software Engineer at Space and Microsoft MVP#comunidadailive
 

.NET Live에서 - AI Everywhere: Azure ML 및 ONNX 런타임



.NET Live에서 - AI Everywhere: Azure ML 및 ONNX 런타임

"On .NET Live - AI Everywhere: Azure ML 및 ONNX Runtime" 비디오는 C#을 사용한 기계 학습에 Azure ML 및 ONNX Runtime을 사용하는 방법에 중점을 둡니다. 연사는 프로그래밍 언어 간에 모델을 내보내는 데 ONNX 형식을 사용하는 이점, 하드웨어 가속 및 추론을 위한 ONNX 런타임의 최적화, 프레임워크의 특정 버전과의 호환성에 대해 논의합니다. 또한 Python 및 .NET에서 Azure ML과 함께 ONNX Runtime을 사용하는 방법, 신경망 모델을 만들고 훈련하는 방법, 기계 학습의 추론 및 최종 단계를 설명합니다. 이 비디오는 디버깅 기능을 제공하는 ARM CPU용 OpenVINO를 사용할 수 있는 ONNX 런타임용 새 공급자를 소개하는 것으로 끝납니다.

비디오의 이 섹션에서 호스트는 ONNX 런타임의 유연성 및 구성 가능성과 다양한 하드웨어 및 소프트웨어 플랫폼에서 실행할 수 있는 기능에 대해 논의합니다. ONNX 런타임은 고객이 클라우드, Android, iOS 또는 Snapdragon CPU에서 사용할 수 있으므로 다양한 플랫폼을 위한 훌륭한 래퍼로 간주되며 더 빠른 추론이 가능합니다.

  • 00:00:00 이 섹션에서는 호스트가 게스트로 인공 지능(AI) 경험이 있는 이탈리아 .NET 개발자인 Maro Benici를 소개합니다. 이 에피소드에서는 C#과 함께 Azure ML 및 ONNX 런타임을 사용하여 기계 학습을 계속 연구하는 방법에 중점을 둘 것입니다. 관련 비트 세그먼트에서는 오늘의 주제와 밀접하게 관련된 .NET에서 AutoML ONNX 모델을 사용하여 예측을 수행하는 방법에 대한 Azure Machine Learning 사이트의 문서에 대해 논의합니다.

  • 00:05:00 이 섹션에서 연사는 Azure Machine Learning 내부 Automl의 구성 요소를 사용하여 프레임워크 간에 모델을 공유하기 위해 기계 학습 모델을 ONNX 형식으로 내보내는 옵션에 대해 설명합니다. .NET에서 추론을 수행하기 위해 ONNX 런타임 패키지가 사용되며 ml.net은 ONNX 모델을 사용하여 예측 파이프라인을 수행합니다. 모델의 입력과 출력을 이해하기 위한 도구인 Netron을 소개하고 입력과 출력에 대한 클래스 생성을 시연합니다. 마지막으로 모델을 포함하는 파이프라인이 정의되고 입력 인스턴스가 엔진을 통해 실행되어 예측이 이루어지며 결과 출력이 예측 요금이 됩니다. 그런 다음 연사는 안정적인 확산과 함께 ONNX 런타임을 사용하여 AI 이미지를 생성하는 방법에 대한 관련 기사를 간략하게 소개합니다.

  • 00:10:00 이 섹션에서 발표자는 맞춤형 하드웨어에서 데이터 센터 및 클라우드 컴퓨팅에 이르기까지 지난 15년 동안 기술이 어떻게 발전했는지에 대해 이야기합니다. 그는 2006년 자신의 첫 번째 프로젝트에 대한 예를 들어 포도원에서 광물을 포착하기 위해 손으로 만든 센서와 데이터를 휴대용 하드 디스크에 저장하고 분석을 위해 실험실로 보낸 방법을 설명합니다. 오늘날에는 클라우드에서 데이터를 수집하고 실시간으로 분석하여 즉각적인 경고 및 조정이 가능한 휴대폰으로 동일한 프로젝트를 수행할 수 있습니다. 발표자는 또한 이전에 온프레미스 컴퓨팅으로 제한되었던 고객이 이제 클라우드 기반 서비스를 사용할 수 있게 되면서 클라우드로의 전환이 어떻게 비즈니스 기회를 열었는지에 대해 설명합니다.

  • 00:15:00 이 섹션에서 연사는 다양한 프로그래밍 언어를 사용하여 기계 학습 모델을 구축하고 배포하는 고객이 직면한 문제에 대해 논의합니다. 그는 ONNX 형식이 이 문제에 대한 해결책으로 만들어졌기 때문에 고객이 다른 프로그래밍 언어로 다시 로드할 수 있는 언어로 모델을 저장할 수 있다고 설명합니다. 그는 계속해서 ONNX가 신경망에 있는 레이어의 수학적 함수와 값을 내보낼 수 있어 다른 언어 간에 쉽게 변환할 수 있다고 설명합니다. 연사는 ONNX가 많은 회사에서 사용되고 있어 코드를 아웃소싱하고 다른 프로그래밍 언어를 알고 있는 다른 회사를 사용할 수 있다고 강조합니다.

  • 00:20:00 이 섹션에서는 비디오에서 ONNX 프레임워크와 다양한 플랫폼 및 프로그래밍 언어에서 기계 학습 모델을 내보내고 실행하는 데 사용하는 방법에 대해 설명합니다. ONNX 프레임워크를 사용하면 사용자가 라이브러리나 프레임워크를 다시 로드하지 않고도 모델을 내보내고 실행할 수 있으므로 Python 및 TensorFlow에 대해 잘 모르는 고객이 더 쉽게 사용할 수 있습니다. ONNX 런타임은 오픈 소스이며 GitHub에서 사용할 수 있으며 사용자는 선호하는 언어와 아키텍처를 선택하여 모델을 실행할 수 있습니다. 비디오는 또한 프레임워크의 특정 버전과의 호환성을 보장하는 데 필수적이므로 op 세트 호환성과 이것이 어떻게 영향을 받는지에 대해서도 다룹니다.

  • 00:25:00 이 섹션에서는 연사가 AI 모델에 사용되는 수학 함수가 ONNX 런타임 라이브러리와 호환되는지 확인하는 방법에 대해 논의합니다. 모델의 모든 작업을 지원하는 최신 버전의 라이브러리를 사용하는 것이 좋습니다. 또한 지원되는 앱과 지원되지 않는 앱에 대한 더 나은 가시성을 제공하는 ONNX 설명서에 대한 최근 업데이트가 있다고 언급합니다. 수학 함수가 지원되지 않으면 경고가 생성되고 지원되지 않는 오프셋을 사용자에게 알립니다. 연사들은 GPU용 하드웨어 가속 및 AI 모델용 최적화와 같은 ONNX 런타임 라이브러리의 이점에 대해서도 논의합니다.

  • 00:30:00 이 섹션에서 발표자는 ONNX 런타임에 대한 최적화와 이를 교육 및 추론에 사용할 수 있는 기능에 대해 논의합니다. ONNX를 사용하면 학습 프로세스를 최적화하고 처음부터 시작하지 않고도 맞춤형 하드웨어를 수용할 수 있습니다. 발표자는 또한 ONNX 런타임을 교육 하드웨어 최적화에 사용할 수 있고 추론을 위해 다른 하드웨어를 선택할 수 있음을 확인합니다. 전반적으로 발표자는 모든 하드웨어 환경에 대한 모델을 만들고 교육하는 기능과 ONNX 런타임의 유연성을 강조합니다.

  • 00:35:00 이 섹션에서 발표자는 Azure ML 및 ONNX Runtime을 사용하여 꽃을 분류하기 위한 신경망을 만드는 방법에 대해 이야기합니다. 측정을 위해 표준 S11 기계 내에서 실행되는 애플리케이션을 선택하여 시작합니다. 그런 다음 회사에서 일반적으로 사용하는 Tensorflow를 사용하고 pandas, NumPy 및 기타 전처리 도구를 선택합니다. 문자열을 행렬로 인코딩하고 교육과 테스트 간에 데이터 세트를 분할하는 방법에 대해 논의합니다. 최종적으로 고객의 데이터 센터에서 사용할 수 있도록 ONNX 형식으로 인코딩하는 신경망을 생성합니다.

  • 00:40:00 동영상의 이 섹션에서는 연사가 Azure Machine Learning 및 TensorFlow를 사용하여 신경망 모델을 교육하는 과정을 설명합니다. 그는 모델의 성능을 평가하기 전에 모델을 컴파일하고 정확도를 최적화하는 방법을 시연합니다. 모델이 학습되면 모델을 TensorFlow로 가져와 고객을 위한 새 모델을 만드는 방법을 보여줍니다. 고객이 쉽게 사용할 수 있도록 입력 사양을 정의하고 입력 및 출력의 이름을 지정합니다. 또한 모델을 고객에게 제공하기 전에 테스트를 위해 모델을 ONNX 형식으로 변환할 때의 이점에 대해서도 설명합니다.

  • 00:45:00 비디오의 이 섹션에서 연사는 Python 및 .NET에서 Azure ML과 함께 ONNX 런타임을 사용하는 방법을 보여줍니다. Python에서 ONNX를 한 번 가져오고, 공급자를 선택하고, TensorFlow 모델을 무시하면서 사용할 ONNX 런타임을 로드합니다. 모델을 실행하여 출력을 얻기 전에 입력을 생성하고 배열 값을 입력합니다. 또한 발표자는 Azure에서 직접 ONNX를 노출하는 엔드포인트를 생성하는 방법과 .NET Core의 콘솔 애플리케이션을 사용하여 IoT 장치 또는 스마트폰에서 ONNX를 사용하는 방법을 보여줍니다.

  • 00:50:00 이 섹션에서는 진행자가 학습된 신경망을 사용하여 이전에 본 적이 없는 새로운 데이터를 기반으로 결과를 예측하는 기계 학습의 마지막 단계인 추론의 개념을 설명합니다. 또한 사용자 지정 텐서 모델을 ONNX 런타임에서 지원하는 형식으로 변환할 수 있는 ONNX 형식에 대해서도 설명합니다. 모델의 전처리 및 후처리도 ONNX 모델 자체로 직렬화할 수 있으므로 각 플랫폼에서 더 쉽게 실행할 수 있다고 언급합니다. 호스트는 모델이 로드되면 프로세스가 여러 언어에서 유사하다는 것을 보여줍니다.

  • 00:55:00 이 섹션에서 연사는 ONNX 런타임용으로 도착한 새로운 공급자에 대해 논의하여 ARM CPU에 OpenVINO를 사용할 수 있게 하여 디버깅을 가능하게 합니다. 화자는 해당 모델이 지원되어 실행이 가능할 때 코드를 변경할 필요가 없고, 계속해서 변환하지 않고도 동일한 모델을 실행할 수 있다고 말하며 이것의 위력을 강조합니다. 발표자는 모델에 대한 하드웨어를 선택하는 것이 필수적이지만 ONNX 런타임이 제어하는 것이 아니며 모델을 운영할 때 내린 결정은 하드웨어 요구 사항을 고려해야 한다고 말합니다. 또한 화자는 클러스터에서 ONNX 런타임을 사용할 수 있으며 추론에서 매번 모델을 변환할 필요가 없다고 언급합니다.
On .NET Live - AI Everywhere: Azure ML and ONNX Runtime
On .NET Live - AI Everywhere: Azure ML and ONNX Runtime
  • 2023.03.06
  • www.youtube.com
How can you create and deploy AI models that work across different platforms and environments? On this week’s episode, Mauro Bennici joins the panel to show ...
 

Berlin Buzzwords 2019: Lester Solbakken – 검색에서 ONNX 및 TensorFlow 모델 평가 확장



Berlin Buzzwords 2019: Lester Solbakken – 검색에서 ONNX 및 TensorFlow 모델 평가 확장

Lester Solbakken은 검색 애플리케이션을 위한 기계 학습 확장 문제에 대해 논의하고 외부 모델 서버 사용에 대한 대체 솔루션을 제안합니다. 그는 확장성을 개선하고 대기 시간과 처리량을 제어하기 위해 데이터를 외부 모델 서버로 보내는 대신 콘텐츠 노드에서 기계 학습 모델을 평가할 것을 제안합니다. Solbakken은 Vespa가 자체 순위 언어 및 Tensor API 확장을 사용하여 애플리케이션에 대한 선언적 상태 패키지를 쉽게 생성하고 Vespa에서 기계 학습 모델을 지원하기 위한 지속적인 노력을 강조합니다. 그는 시스템 수준 검색 문제를 피하기 위해 순위의 여러 단계 사이의 상관 관계를 이해하는 것이 중요하다고 강조하고 사람들이 오픈 소스 프로젝트에 기여하도록 권장합니다.

  • 00:00:00 비디오의 이 섹션에서 Lester Solbakken은 특히 검색 기반 애플리케이션을 위한 기계 학습 프로덕션 확장의 문제에 대해 설명합니다. 그는 모델 서버가 성능 및 확장성 문제를 해결하기 위해 점점 더 대중화되었지만 검색 응용 프로그램의 경우 각 검색 결과에 대한 모델을 평가하면 빠르게 네트워크 용량의 병목 현상이 발생한다고 설명합니다. 해결책은 결과를 위해 더 적은 데이터를 보내거나 각 서버에 대해 로컬로 모델을 평가하는 방법을 찾는 것입니다. Solbakken은 이러한 문제를 해결하기 위해 Vespa 검색 플랫폼을 사용한 그의 팀 작업에 대해 설명합니다.

  • 00:05:00 이 섹션에서 Lester Solbakken은 검색을 위한 ONNX 및 TensorFlow 모델 평가 확장 문제에 대해 설명합니다. 한 가지 가능한 해결책은 기능을 모델 서버에 보내는 것이지만 문제는 콘텐츠 및 모델 서버가 서로 다른 기능 세트를 기반으로 순위를 평가할 수 있어 전역적으로 최상의 결과를 얻을 가능성을 줄일 수 있다는 것입니다. 대신 Solbakken은 Vespa에서 작업한 더 나은 결과를 얻기 위해 콘텐츠 서버에서 모델을 평가할 것을 제안합니다. 수백 개의 미국 간행물이 실행되고 전 세계적으로 초당 수십만 개의 쿼리에서 많이 사용되는 Vespa는 탄력성, 확장성 및 고급 관련 점수를 위한 용량을 포함하여 풍부한 핵심 기능을 가지고 있습니다.

  • 00:10:00 이 섹션에서 Lester Solbakken은 Vespa가 ONNX와 TensorFlow를 통합하여 애플리케이션에 대한 선언적 상태 패키지를 쉽게 생성하고 기계 학습 모델을 쉽게 사용할 수 있도록 하는 방법에 대해 설명합니다. Vespa는 자체 순위 언어를 사용하여 이러한 모델을 실행하고 Tensor API 확장은 다양한 유형의 계산을 나타낼 수 있는 작은 핵심 기능 집합을 제공합니다. 이것의 이점은 서로 다른 소스의 서로 다른 모델을 이 형식으로 변환할 수 있어 최적화하기가 더 쉽다는 것입니다. Solbakken은 또한 데이터 전송이 효율적이지 않다는 가설을 테스트하기 위해 설정한 벤치마크를 강조하며, 블로그 추천 시스템을 에뮬레이션하여 첫 번째 단계에서 내적을 사용하고 두 번째 단계에서 신경망을 사용했습니다.

  • 00:15:00 이 섹션에서 발표자는 검색에서 기계 학습을 위한 외부 모델 서버의 확장성 한계에 대해 논의하고 대안 솔루션을 제안합니다. 그는 추가 콘텐츠 노드를 추가하여 워크로드를 분산하면 대기 시간이 개선될 수 있다고 설명하고 이러한 노드가 더 많은 수의 문서를 다시 작성하도록 함으로써 기계 학습 모델로 결과 수를 늘려 잠재적으로 더 높은 품질의 결과를 얻을 수 있다고 제안합니다. 평가가 네트워크를 통해 푸시되는 것이 아니라 콘텐츠 노드에서 수행되는 다단계 순위 지정을 통해 대기 시간과 처리량을 확장하고 제어할 수 있습니다. 연사는 외부 모델 서버가 확장을 위한 좋은 솔루션이 아니라는 결론을 내리고 대신 콘텐츠 노드에서 평가하는 것의 중요성을 강조합니다.

  • 00:20:00 이 섹션에서 Lester Solbakken은 Vespa의 다단계 순위 지정과 시스템 수준 검색 문제를 피하기 위해 여러 단계 간의 상관 관계를 이해하는 것의 중요성에 대해 이야기합니다. 그는 또한 기계 학습 및 Vespa의 모델 지원이 지속적인 노력이며 사람들이 오픈 소스 프로젝트에 기여하도록 권장한다고 언급합니다. Vespa를 가지고 노는 데 관심이 있는 사용자는 Vespa AI 홈페이지에서 샘플 애플리케이션, 사용 사례 및 자습서를 포함하여 많은 리소스를 찾을 수 있습니다.
Berlin Buzzwords 2019: Lester Solbakken – Scaling ONNX and TensorFlow model evaluation in search
Berlin Buzzwords 2019: Lester Solbakken – Scaling ONNX and TensorFlow model evaluation in search
  • 2019.06.20
  • www.youtube.com
With the advances in deep learning and the corresponding increase in machine learning frameworks in recent years, a new class of software has emerged: model ...
 

ONNX 동화



ONNX 동화

이 비디오에서 발표자는 모든 다른 플랫폼에서 작동할 수 있는 기계 학습 상호 운용성을 위한 개방형 표준으로 ONNX를 소개합니다. 처음부터 ONNX 프로젝트를 만들고, Microsoft 리포지토리에서 예제를 조정하고, 문제를 해결하고, 다른 ONNX 관련 Github 프로젝트를 탐색하는 과정을 거칩니다. 그런 다음 GPT2 및 CUDA를 사용하여 ONNX 바인딩을 테스트하여 향후 ONNX 런타임 Rust 바인딩을 더 탐색하는 데 관심을 표명합니다. 발표자는 ONNX의 다재다능함과 이식성을 언급하고 이를 실험 및 향후 더 실질적인 프로젝트 구축을 위한 좋은 도구로 보고 있습니다.

  • 00:00:00 이 섹션에서 연사는 클라우드 서비스에 대한 추론을 위해 다양한 프레임워크 및 가속기를 사용할 수 있는 기계 학습 상호 운용성을 위한 개방형 표준인 ONNX를 소개합니다. 그들은 플랫폼 간 고성능 ML 추론 및 교육 가속기를 사용하여 ONNX 런타임에 대한 안전한 래퍼의 가용성을 언급합니다. 또한 모든 다른 플랫폼에서 작동할 수 있으므로 ONNX와 관련된 이식성을 강조하고 Microsoft Branch의 예제를 사용하여 처음부터 새 ONNX 프로젝트를 만드는 방법을 보여줍니다. 발표자는 ONNX가 적극적으로 작업되고 지속적으로 통합됨에 따라 기계 학습에서 놀기에 좋은 도구를 제공한다고 언급합니다.

  • 00:05:00 비디오의 이 섹션에서 발표자는 ONNX 웹 사이트로 이동하여 최신 버전을 가져오고 ONNX 런타임을 만듭니다. 또한 Microsoft 리포지토리에서 예제를 복사 및 수정하고 메이크파일을 추가하는 방법도 보여줍니다. 또한 추적 가입자와 gbt를 코드에 통합하고 squeeze net 모델을 추가합니다. 발표자는 몇 가지 오류가 발생하지만 이전 예제를 확인하고 올바른 모델을 사용할 수 있는지 확인하여 오류를 해결합니다.

  • 00:10:00 이 섹션에서 화자는 특정 버전의 ONNX를 사용하려고 하지만 오류가 발생하는 문제를 해결하고 있습니다. 문제를 해결하기 위해 작업 예제를 복사하고 프로젝트를 다시 빌드하는 등 다양한 방법을 시도하지만 아무 것도 작동하지 않는 것 같습니다. 결국 ONNX 설명서에서 원하는 버전과 함께 작동하는 이전 예제를 찾습니다. 그들은 모델을 교체하고 프로그램을 성공적으로 컴파일하고 실행할 수 있습니다. 전반적으로 이 섹션에서는 종속성을 철저히 확인하고 디버깅할 때 기꺼이 다른 솔루션을 시도하는 것의 중요성을 강조합니다.

  • 00:15:00 비디오의 이 섹션에서 발표자는 기본 "Hello world" ONNX 예제의 제한 사항에 대해 논의하고 이미지를 로드하고 조작하는 예제가 있으면 더 유용할 것이라고 제안합니다. 그들은 Rust Code Search 및 Track ONNX 와 같이 더 고급 기능이 있는 다른 ONNX 관련 Github 프로젝트를 강조하고 이를 시도하는 데 관심을 보입니다. 또한 CUDA와 함께 GPT2 모델을 사용할 수 있는 GPT-RS 프로젝트를 탐색하고 잠재적으로 이미지 데이터를 조작하는 데 어떻게 사용될 수 있는지 설명합니다.

  • 00:20:00 이 섹션에서 사용자는 코드 완성 또는 텍스트 완성을 위한 테스트 출력을 생성하는 GPT2 및 CUDA를 사용하여 ONNX 바인딩을 테스트합니다. 사용자는 이 예제가 유망하다고 생각하고 향후 ONNX 런타임 Rust 바인딩을 더 탐색하는 데 관심을 표명합니다. 그들은 자신의 경험을 흥미로운 실험으로 요약하고 ONNX와의 다음 시도에서 더 실질적인 무언가를 만들고자 하는 열망을 표현합니다.
Assimilate Onnx
Assimilate Onnx
  • 2023.03.27
  • www.youtube.com
Assimilate OnnxLearn #onnx for #mlopsGitHub Repo: https://github.com/nogibjj/assimilate-onnxWatch on @oreilly: YouTube Playlist: Hashtags: #learnonnx, #m...
 

HITNET 대. ACVNet 신경 스테레오 깊이 추정 비교(ONNX)



HITNET 대. ACVNet 신경 스테레오 깊이 추정 비교(ONNX)

드라이빙 스테레오 데이터 세트의 HITNET 및 ACVNet 스테레오 깊이 추정 모델 비교.

모델 추론 세부 정보(NVIDIA 1660 SUPER):
히트넷(640X480): 220ms
ACVNet(640x384): 480ms
참조: [HITNET 추론] https://github.com/ibaiGorordo/ONNX-HITNET-Stereo-Depth-estimation
[ACVNet 추론] https://github.com/ibaiGorordo/ONNX-ACVNet-Stereo-Depth-Estimation
[드라이빙 스테레오 데이터셋] https://drivingstereo-dataset.github.io/

HITNET Vs. ACVNet Neural Stereo Depth Estimation Comparison (ONNX)
HITNET Vs. ACVNet Neural Stereo Depth Estimation Comparison (ONNX)
  • 2022.03.26
  • www.youtube.com
Comparison of the HITNET and ACVNet stereo depth estimation models in the Driving Stereo dataset.Model Inference details (NVIDIA 1660 SUPER):HITNET (640X480)...
 

NVIDIA TAO 툴킷으로 ONNX 모델 가져오기, 훈련 및 최적화



NVIDIA TAO 툴킷으로 ONNX 모델 가져오기, 훈련 및 최적화

이 비디오는 NVIDIA TAO 툴킷을 사용하여 ONNX 모델을 가져오고 훈련하고 최적화하는 방법을 보여줍니다. 미리 훈련된 ResNet18 모델을 다운로드하고 Pascal VOC 데이터 세트에서 TAO로 미세 조정하고 모델을 가져오고 ONNX 그래프를 시각화하는 단계를 제공합니다. TensorBoard 시각화를 사용하여 교육 진행 상황을 모니터링할 수 있으며 ONNX 변환 오류가 있는 경우 사용자 지정 레이어를 사용할 수 있습니다. 비디오는 또한 감소하는 손실을 관찰하고, 손실을 검증하고, 가중치와 편향을 분석하여 모델의 성능을 평가하는 방법을 설명합니다. 사용자는 테스트 데이터 세트 및 샘플 이미지에서 모델의 정확도를 평가하고 가지치기 및 최적화를 계속하여 이를 더욱 개선할 수 있습니다.

  • 00:00:00 이 섹션에서는 비디오에서 NVIDIA TAO 툴킷을 사용하여 ONNX 모델을 가져오고 훈련하고 최적화하는 방법을 설명합니다. 비디오는 미리 훈련된 ResNet18 모델을 다운로드하는 것으로 시작하며 TAO를 사용하여 Pascal VOC 데이터 세트에서 미세 조정됩니다. ONNX 모델을 가져오고 ONNX 그래프를 시각화하는 단계도 다룹니다. 또한 동영상에서는 TensorBoard 시각화를 사용하여 교육 작업의 진행 상황을 모니터링하는 방법에 대해 설명합니다. 마지막으로 비디오는 TAO가 사용자 지정 레이어를 처리할 수 있다고 언급하고 이를 사용하여 변환에 실패한 모델을 가져오는 방법에 대한 지침을 제공합니다.

  • 00:05:00 이 섹션에서는 연사가 훈련된 모델의 성능을 평가하는 방법에 대해 설명합니다. 사용자는 감소하는 손실을 보고 모델이 개선되고 있는지 확인할 수 있습니다. 또한 검증 손실은 과적합을 식별하는 데 도움이 될 수 있습니다. 고급 사용자는 그래프와 히스토그램을 보고 모델의 가중치와 편향을 이해할 수 있습니다. 연사는 테스트 데이터 세트에서 모델의 전체 정확도를 확인하는 방법과 샘플 이미지에서 모델의 성능을 평가하는 방법을 보여줍니다. 모델에는 개선의 여지가 있으며 사용자는 정확도를 더욱 향상시키기 위해 모델 가지치기 및 최적화를 계속할 수 있습니다.
Import, Train, and Optimize ONNX Models with NVIDIA TAO Toolkit
Import, Train, and Optimize ONNX Models with NVIDIA TAO Toolkit
  • 2022.05.19
  • www.youtube.com
The #NVIDIATAO Toolkit, built on TensorFlow and PyTorch, is a low-code AI solution that lets developers create custom AI models using the power of transfer l...
 

NVAITC 웨비나: TensorRT로 모델 배포



NVAITC 웨비나: TensorRT로 모델 배포

NVAITC 웨비나의 이 섹션에서는 솔루션 설계자 Nikki Loppie가 고성능 딥 러닝 추론을 위한 NVIDIA의 소프트웨어 개발 키트인 TensorRT를 소개합니다. TensorRT는 임베디드 장치에서 데이터 센터에 이르기까지 다양한 플랫폼에서 낮은 대기 시간과 높은 처리량 추론을 위한 추론 최적화 프로그램 및 런타임을 제공합니다. Loppie는 TensorRT가 커널 융합 및 정밀 보정을 포함하여 추론 성능을 최적화하는 데 사용하는 5가지 기술을 설명합니다. 개발자는 TensorRT의 Python 및 C++ API를 사용하여 이러한 최적화를 자체 애플리케이션에 통합할 수 있으며 trtorch와 같은 변환기 라이브러리를 사용하여 추론을 위해 PyTorch 모델을 최적화할 수 있습니다. Loppie는 trtorch 라이브러리를 사용하여 TensorRT에 최적화된 모델을 저장하는 방법을 시연하고 이미지 분류를 위해 최적화되지 않은 모델에 대해 최적화된 모델을 벤치마킹하여 반정밀도로 상당한 속도 향상을 보여줍니다.

  • 00:00:00 웨비나의 이 섹션에서 솔루션 아키텍트인 Nikki Loppie는 추론에서 효율성의 중요성과 플랫폼 이식성의 필요성에 대해 논의합니다. 그녀는 이 두 가지 문제를 해결하는 고성능 딥 러닝 추론을 위한 NVIDIA의 소프트웨어 개발 키트인 TensorRT를 소개합니다. TensorRT에는 임베디드 장치에서 데이터 센터에 이르기까지 광범위한 플랫폼에서 낮은 대기 시간과 높은 처리량 추론을 위한 추론 최적화 프로그램 및 런타임이 포함되어 있습니다. 또한 모든 주요 딥 러닝 프레임워크와 호환됩니다. Loppie는 TensorRT가 추론 성능을 최적화하기 위해 구현하는 5가지 기술(커널 퓨전, 정밀 보정, 커널 자동 튜닝 포함)을 설명합니다.

  • 00:05:00 이 섹션에서는 웨비나에서 TensorRT의 기능을 소개하여 커널 실행 시간을 최적화하고 메모리 사용량을 줄이며 다중 스트림 실행을 사용하여 병렬 추론을 지원합니다. 개발자는 TensorRT의 Python 및 C++ API를 사용하여 이러한 최적화를 자체 애플리케이션에 통합할 수 있습니다. 웨비나는 또한 tr torch와 같은 변환기 라이브러리를 사용하여 추론을 위해 PyTorch 모델을 최적화하는 방법을 설명합니다. 단계에는 모델 저장, 로드, ResNet 모델 초기화, TorchScript를 사용하여 컴파일, 마지막으로 TensorRT 형식으로 변환이 포함됩니다. 그런 다음 최적화된 모델을 대상 플랫폼에 배포할 수 있습니다.

  • 00:10:00 웨비나의 이 섹션에서 발표자는 나중에 사용하거나 trtorch 라이브러리를 사용하여 다른 플랫폼에 배포하기 위해 TensorRT 최적화 모델을 저장하는 방법을 시연합니다. 화자는 ImageNet 데이터 세트에서 실행되는 ResNet-18 및 ResNet-50 모델과 함께 이미지 분류 예제를 사용합니다. trtorch 최적화 모델은 ResNet-18의 경우 5.5배, ResNet-50의 경우 6.4배의 속도 향상 계수로 최적화되지 않은 모델에 비해 절반 정밀도로 상당한 속도 향상을 보여줍니다. 연사는 또한 편견 없는 벤치마킹의 중요성을 강조하고 trtorch를 시작하는 방법에 대한 지침을 제공합니다.
NVAITC Webinar: Deploying Models with TensorRT
NVAITC Webinar: Deploying Models with TensorRT
  • 2020.11.30
  • www.youtube.com
Learn how to accelerate deep learning (DL) inference with TensorRT via TRTorch library. https://developer.nvidia.com/tensorrt, https://nvidia.github.io/TRTorch/
 

ESP 자습서 - 방법: Keras/Pytorch/ONNX에서 가속기 설계



ESP 자습서 - 방법: Keras/Pytorch/ONNX에서 가속기 설계

이 튜토리얼에서는 Keras/Pytorch/ONNX 모델에서 가속기를 자동으로 생성할 수 있는 Chalice for ML이라는 도구를 소개합니다. 그런 다음 자습서는 가속기를 ESP(Early Stage Prototyper)에 통합하는 방법을 시연합니다. 연사는 또한 Keras/Pytorch/ONNX에서 가속기를 설계하는 방법을 보여주고 가속기 가져오기, 테스트 벤치 추가, RTL 생성 및 가속기의 두 가지 버전 생성 단계를 거칩니다. 이 비디오는 또한 Linux 컴파일과 액셀러레이터용 Linux 사용자 공간 애플리케이션 생성에 대해서도 다룹니다. 마지막으로 자습서는 추가 학습을 위한 리소스로 끝납니다.

  • 00:00:00 튜토리얼의 이 섹션에서 발표자는 Keras/Pytorch/ONNX 모델에서 가속기를 자동으로 생성할 수 있는 Chalice for ML이라는 도구를 소개합니다. 이 흐름은 HLS 4 ML을 사용하여 NXP의 GitHub 리포지토리용 ESP 내에서 제공되는 미리 빌드된 Keras 모델에서 가속기를 생성하여 시연됩니다. 그런 다음 생성된 가속기는 대화형 스크립트를 사용하여 ESP에 통합 및 테스트됩니다. 발표자는 사용자가 튜토리얼을 따르기 전에 전제 조건 가이드를 살펴보고 환경을 설정해야 한다고 강조합니다. 튜토리얼은 또한 사용자가 모든 단계를 거치지 않고 실험하는 데 사용할 수 있는 사전 제작된 자료를 제공합니다.

  • 00:05:00 튜토리얼의 이 섹션에서 강사는 이전 단계에서 설계된 가속기를 ESP(Early Stage Prototyper)에 통합하는 방법을 설명합니다. 액셀러레이터의 3자리 16진수 ID가 할당되며 숫자는 10진수로 1024보다 크지 않아야 합니다. 가속기의 데이터 비트 폭은 현재 사용 사례에서 32비트로 정의되고 입력 및 출력 파일 크기가 결정됩니다. 마지막으로 강사는 MLP 3계층 가속기에 대한 고급 합성 실행을 시연하고 ESP로 HLS를 실행하는 방법을 보여줍니다. 모든 단계는 시스템 C 또는 C++ 가속기에 대한 다른 가이드와 동일하며 MLP용 HLS 프로젝트 폴더는 ESP 시스템의 나머지 부분과 가속기를 래핑하고 인터페이스하는 데 필요한 모든 파일과 함께 ESP에 추가됩니다.

  • 00:10:00 비디오의 이 섹션에서 연사는 Keras/Pytorch/ONNX에서 가속기를 설계하는 단계를 시연합니다. 먼저 가속기를 가져오고 시뮬레이션을 자동으로 테스트하는 테스트 벤치를 추가하는 방법을 보여줍니다. 그런 다음 선택기 검색 및 FPGA 기술에서 실행되는 프로젝트를 생성하는 HLS 단계를 거칩니다. 그런 다음 생성된 RTL은 FPGA 기술에 배치되고 가속기의 두 가지 버전이 생성됩니다. 하나는 32비트이고 다른 하나는 64비트입니다. 발표자는 ESP X 구성 명령으로 SOC를 구성하고 자동으로 생성된 베어메탈 애플리케이션을 컴파일하는 방법을 보여줍니다. 가속기의 베어메탈 테스트를 시뮬레이션하려면 테스트 프로그램을 지정해야 합니다. 검증이 통과되면 FPGA 비트스트림을 생성할 수 있습니다.

  • 00:15:00 이 섹션에서 비디오 자습서는 cynics를 컴파일할 뿐만 아니라 가속기용 사용자 공간 테스트 응용 프로그램도 컴파일하는 Linux 컴파일 과정을 안내합니다. Linux가 완료되면 FPGA에서 실행될 Linux 사용자 공간 응용 프로그램인 가속기용 실행 파일이 생성됩니다. 그런 다음 자습서는 FPGA를 프로그래밍하고 make FPGA 실행 명령을 사용하여 베어 메탈 테스트를 실행합니다. 감속기 베어 메탈 단위 테스트를 실행하기 위해 이전에 생성된 테스트 프로그램이 지정됩니다. 그 후 리눅스를 실행하고 단위 테스트 애플리케이션을 실행하여 판매자 Reiter를 성공적으로 찾았고 유효성 검사와 함께 테스트를 통과했습니다. 자습서는 추가 학습을 위한 일부 리소스로 끝납니다.
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
  • 2020.03.20
  • www.youtube.com
Tutorial guide: https://www.esp.cs.columbia.edu/docs/hls4ml/(The video tutorial was not recorded with the latest version of the ESP repository. While watchin...