国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

TensorRT C# API 項(xiàng)目更新 (1):支持動(dòng)態(tài)Bath輸入模型推理

這篇具有很好參考價(jià)值的文章主要介紹了TensorRT C# API 項(xiàng)目更新 (1):支持動(dòng)態(tài)Bath輸入模型推理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 項(xiàng)目介紹

?? NVIDIA? TensorRT? 是一款用于高性能深度學(xué)習(xí)推理的 SDK,包括深度學(xué)習(xí)推理優(yōu)化器和運(yùn)行時(shí),可為推理應(yīng)用程序提供低延遲和高吞吐量?;?NVIDIA TensorRT 的應(yīng)用程序在推理過程中的執(zhí)行速度比純 CPU 平臺(tái)快 36 倍,使您能夠優(yōu)化在所有主要框架上訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,以高精度校準(zhǔn)低精度,并部署到超大規(guī)模數(shù)據(jù)中心、嵌入式平臺(tái)或汽車產(chǎn)品平臺(tái)。

? TensorRT 基于 NVIDIA CUDA? 并行編程模型構(gòu)建,使您能夠在 NVIDIA GPU 上使用量化、層和張量融合、內(nèi)核調(diào)整等技術(shù)來優(yōu)化推理。TensorRT 提供 INT8 使用量化感知訓(xùn)練和訓(xùn)練后量化和浮點(diǎn) 16 (FP16) 優(yōu)化,用于部署深度學(xué)習(xí)推理應(yīng)用程序,例如視頻流、推薦、欺詐檢測和自然語言處理。低精度推理可顯著降低延遲,這是許多實(shí)時(shí)服務(wù)以及自主和嵌入式應(yīng)用所必需的。TensorRT 與 PyTorch 和 TensorFlow 集成,因此只需一行代碼即可實(shí)現(xiàn) 6 倍的推理速度。TensorRT 提供了一個(gè) ONNX 解析器,因此您可以輕松地將 ONNX 模型從常用框架導(dǎo)入 TensorRT。它還與 ONNX 運(yùn)行時(shí)集成,提供了一種以 ONNX 格式實(shí)現(xiàn)高性能推理的簡單方法。

? 基于這些優(yōu)勢,TensorRT目前在深度模型部署應(yīng)用越來越廣泛。但是TensorRT目前只提供了C++與Python接口,對(duì)于跨語言使用十分不便。目前C#語言已經(jīng)成為當(dāng)前編程語言排行榜上前五的語言,也被廣泛應(yīng)用工業(yè)軟件開發(fā)中。為了能夠?qū)崿F(xiàn)在C#中調(diào)用TensorRT部署深度學(xué)習(xí)模型,我們在之前的開發(fā)中開發(fā)了TensorRT C# API。雖然實(shí)現(xiàn)了該接口,但由于數(shù)據(jù)傳輸存在問題,當(dāng)時(shí)開發(fā)的版本在應(yīng)用時(shí)存在較大的問題。

? 基于此,我們開發(fā)了TensorRT C# API 2.0版本,該版本在開發(fā)時(shí)充分考慮了上一版本應(yīng)用時(shí)出現(xiàn)的問題,并進(jìn)行了改進(jìn)。為了更加方便開發(fā)者使用,在本次更新中增加了對(duì)動(dòng)態(tài)輸入模型的支持,將在本技術(shù)文中詳細(xì)介紹本次更新內(nèi)容以及應(yīng)用案例。

  • TensorRT C# API 項(xiàng)目源碼:
https://github.com/guojin-yan/TensorRT-CSharp-API.git
  • TensorRT C# API 項(xiàng)目應(yīng)用源碼:
https://github.com/guojin-yan/TensorRT-CSharp-API-Samples.git

2. 更新回顧

? 由于該項(xiàng)目目前還沒有完全開發(fā)完成,為了更好的方便大家使用,因此會(huì)在最新更新后提供給大家最新的資訊。如果大家在使用時(shí)有任何疑問,可以閱讀之前發(fā)布的技術(shù)博客:

  • 技術(shù)博客一:《最新發(fā)布!TensorRT C# API :基于C#與TensorRT部署深度學(xué)習(xí)模型》

    分享了更新版的TensorRT C# API 相關(guān)信息,并對(duì)擴(kuò)展接口進(jìn)行改進(jìn),優(yōu)化哦了模型推理數(shù)據(jù)加載方式,很大程度上壓縮了數(shù)據(jù)處理時(shí)間;同時(shí)分型了最新版本的詳細(xì)使用流程,以及提供了配套的使用案例,方便開發(fā)者們進(jìn)行使用。

3. 動(dòng)態(tài)輸入模型支持

? 在上一版本中,支持了多Bath推理,單其實(shí)現(xiàn)方式是導(dǎo)出的推理模型是多Bath的,因此模型推理的Bath是不可更改的。但是目前TensorRT已經(jīng)支持了動(dòng)態(tài)模型輸入,所以更新了對(duì)動(dòng)態(tài)輸入模型的支持。下面將對(duì)更新的API接口以及推理流程進(jìn)行簡單的介紹:

3.1 新增API

  • public static void OnnxToEngine(string modelPath, int memorySize, string nodeName, Dims minShapes, Dims optShapes, Dims maxShapes)

    • 模型轉(zhuǎn)換接口:可以調(diào)用封裝的TensorRT中的ONNX 解釋器,對(duì)ONNX模型進(jìn)行轉(zhuǎn)換,并根據(jù)本機(jī)設(shè)備信息,編譯本地模型,將模型轉(zhuǎn)換為TensorRT 支持的engine格式,該接口支持動(dòng)態(tài)輸入模型。
    • string modelPath: 本地ONNX模型地址,只支持ONNX格式,且ONNX模型必須為確定的輸入輸出,暫不支持動(dòng)態(tài)輸入。
    • int memorySize: 模型轉(zhuǎn)換時(shí)分配的內(nèi)存大小。
    • string nodeName: 模型輸入節(jié)點(diǎn)名稱,該節(jié)點(diǎn)維度確定但是形狀是動(dòng)態(tài)的,一般為: [-1, 3 640, 640],某一維度或其中幾個(gè)維度大小為“-1”。
    • Dims minShapes: 動(dòng)態(tài)尺寸的最小允許值
    • Dims optShapes: 優(yōu)化(內(nèi)核選擇)中使用的值、動(dòng)態(tài)尺寸的最優(yōu)值
    • Dims maxShapes: 動(dòng)態(tài)尺寸等的最大允許值
  • public Nvinfer(string modelPath, int maxBatahSize)

    • Nvinfer 初始化接口: 初始化Nvinfer類,主要初始化封裝的推理引擎,該推理引擎中封裝了比較重要的一些類和指針。

    • string modelPath: engine模型路徑。

    • int maxBatahSize: 推理推理支持的最大的Bath。

  • public void SetBindingDimensions(int index, Dims dims)/SetBindingDimensions(string nodeName, Dims dims)

    • 設(shè)置節(jié)點(diǎn)維度接口: 通過端口編號(hào)或者端口名稱,獲取綁定的端口的形狀信息。
    • int index: 綁定端口的編號(hào)。
    • string nodeName: 綁定端口的名稱。
    • Dims dims: 需要設(shè)置綁定端口的維度。

3.2 推理流程

? 對(duì)于固定輸入模型的推理流程,主要包括以下四個(gè)步驟:

  • Nvinfer初始化
  • 加載推理數(shù)據(jù)
  • 模型推理
  • 獲取推理結(jié)果

? 而當(dāng)我們使用動(dòng)態(tài)輸入模型時(shí),其推理流程發(fā)生了變化,如下圖所示:

? 當(dāng)部署動(dòng)態(tài)輸入模型時(shí),推理流程為:

  • Nvinfer初始化
  • 設(shè)置本次推理模型輸入大小
  • 加載推理數(shù)據(jù)
  • 模型推理
  • 獲取推理結(jié)果

? 與常規(guī)的規(guī)定輸入模型的推理流程相比,主要是增加了設(shè)置本次推理模型輸入大小這一步,其他步驟并未發(fā)生較大的變化。此外,如果下一次推理輸入數(shù)據(jù)形狀大小發(fā)生了改變,就需要重新進(jìn)行設(shè)置,如果輸入形狀大小并未對(duì)發(fā)生變化,則無需進(jìn)行再次設(shè)置。

4. 接口應(yīng)用

? 關(guān)于該項(xiàng)目的調(diào)用方式在上一篇文章中已經(jīng)進(jìn)行了詳細(xì)介紹,具體使用可以參考《最新發(fā)布!TensorRT C# API :基于C#與TensorRT部署深度學(xué)習(xí)模型》,下面結(jié)合Yolov8-cls模型詳細(xì)介紹一下更新的接口使用方法。

4.1 創(chuàng)建并配置C#項(xiàng)目

? 首先創(chuàng)建一個(gè)簡單的C#項(xiàng)目,然后添加項(xiàng)目配置。

? 首先是添加TensorRT C# API 項(xiàng)目引用,如下圖所示,添加上文中C#項(xiàng)目生成的dll文件即可。

? 接下來添加OpenCvSharp,此處通過NuGet Package安裝即可,此處主要安裝以下兩個(gè)程序包即可:

? 配置好項(xiàng)目后,項(xiàng)目的配置文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <RootNamespace>TensorRT_CSharp_API_demo</RootNamespace>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OpenCvSharp4.Extensions" Version="4.9.0.20240103" />
    <PackageReference Include="OpenCvSharp4.Windows" Version="4.9.0.20240103" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="TensorRtSharp">
      <HintPath>E:\GitSpace\TensorRT-CSharp-API\src\TensorRtSharp\bin\Release\net6.0\TensorRtSharp.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

4.2 添加推理代碼

? 此處演示一個(gè)簡單的圖像分類項(xiàng)目,以Yolov8-cls項(xiàng)目為例:

(1) 轉(zhuǎn)換engine模型

? 動(dòng)態(tài)輸入的模型在進(jìn)行格式轉(zhuǎn)換時(shí),需要指定模型推理形狀至此的范圍,minShapes表示模型推理支持的最小形狀,optShapes表示模型推理支持的最佳形狀,maxShapes表示模型推理支持的最大形狀,模型轉(zhuǎn)換需要消耗較多時(shí)間,最終轉(zhuǎn)換成功后會(huì)在模型同級(jí)目錄下生成相同名字的.engine文件。

Dims minShapes = new Dims(1, 3, 224, 224);
Dims optShapes = new Dims(10, 3, 224, 224);
Dims maxShapes = new Dims(20, 3, 224, 224);
Nvinfer.OnnxToEngine(onnxPath, 20, "images", minShapes, optShapes, maxShapes);

(2) 定義模型預(yù)測方法

? 下面代碼是定義的Yolov8-cls模型的預(yù)測方法,該方法支持動(dòng)態(tài)Bath輸入模型推理,可以根據(jù)用戶輸入圖片數(shù)量,自動(dòng)設(shè)置輸入Bath,然后進(jìn)行推理。

? 下面代碼與上一篇文章中的代碼差異主要是增加了predictor.SetBindingDimensions("images", new Dims(batchNum, 3, 224, 224));這一句代碼。同時(shí)在初始化時(shí),設(shè)置最大支持20Bath,這與上文模型轉(zhuǎn)換時(shí)設(shè)置的一致。

public class Yolov8Cls
{
    public Dims InputDims;
    public int BatchNum;
    private Nvinfer predictor;
    public Yolov8Cls(string enginePath)
    {
        predictor = new Nvinfer(enginePath, 20);
        InputDims = predictor.GetBindingDimensions("images");
    }
    public void Predict(List<Mat> images)
    {
        BatchNum = images.Count;
        for (int begImgNo = 0; begImgNo < images.Count; begImgNo += BatchNum)
        {
            DateTime start = DateTime.Now;
            int endImgNo = Math.Min(images.Count, begImgNo + BatchNum);
            int batchNum = endImgNo - begImgNo;
            List<Mat> normImgBatch = new List<Mat>();
            int imageLen = 3 * 224 * 224;
            float[] inputData = new float[BatchNum * imageLen];
            for (int ino = begImgNo; ino < endImgNo; ino++)
            {
                Mat input_mat = CvDnn.BlobFromImage(images[ino], 1.0 / 255.0, new OpenCvSharp.Size(224, 224), 0, true, false);
                float[] data = new float[imageLen];
                Marshal.Copy(input_mat.Ptr(0), data, 0, imageLen);
                Array.Copy(data, 0, inputData, ino * imageLen, imageLen);
            }
            predictor.SetBindingDimensions("images", new Dims(batchNum, 3, 224, 224));
            predictor.LoadInferenceData("images", inputData);
            DateTime end = DateTime.Now;
            Console.WriteLine("[ INFO ] Input image data processing time: " + (end - start).TotalMilliseconds + " ms.");
            predictor.infer();
            start = DateTime.Now;
            predictor.infer();
            end = DateTime.Now;
            Console.WriteLine("[ INFO ] Model inference time: " + (end - start).TotalMilliseconds + " ms.");
            start = DateTime.Now;

            float[] outputData = predictor.GetInferenceResult("output0");
            for (int i = 0; i < batchNum; ++i)
            {
                Console.WriteLine(string.Format("[ INFO ] Classification Top {0} result : ", 2));
                float[] data = new float[1000];
                Array.Copy(outputData, i * 1000, data, 0, 1000);
                List<int> sortResult = Argsort(new List<float>(data));
                for (int j = 0; j < 2; ++j)
                {
                    string msg = "";
                    msg += ("index: " + sortResult[j] + "\t");
                    msg += ("score: " + data[sortResult[j]] + "\t");
                    Console.WriteLine("[ INFO ] " + msg);
                }
            }
            end = DateTime.Now;
            Console.WriteLine("[ INFO ] Inference result processing time: " + (end - start).TotalMilliseconds + " ms.\n");
        }
    }
    public static List<int> Argsort(List<float> array)
    {
        int arrayLen = array.Count;
        List<float[]> newArray = new List<float[]> { };
        for (int i = 0; i < arrayLen; i++)
        {
            newArray.Add(new float[] { array[i], i });
        }
        newArray.Sort((a, b) => b[0].CompareTo(a[0]));
        List<int> arrayIndex = new List<int>();
        foreach (float[] item in newArray)
        {
            arrayIndex.Add((int)item[1]);
        }
        return arrayIndex;
    }
}

(3) 預(yù)測方法調(diào)用

? 下面是上述定義的預(yù)測方法,為了測試不同Bath性能,此處讀取了多張圖片,并分別預(yù)測不同張數(shù)圖片,如下所示:

Yolov8Cls yolov8Cls = new Yolov8Cls("E:\\Model\\yolov8\\yolov8s-cls_b.engine");
Mat image1 = Cv2.ImRead("E:\\ModelData\\image\\demo_4.jpg");
Mat image2 = Cv2.ImRead("E:\\ModelData\\image\\demo_5.jpg");
Mat image3 = Cv2.ImRead("E:\\ModelData\\image\\demo_6.jpg");
Mat image4 = Cv2.ImRead("E:\\ModelData\\image\\demo_7.jpg");
Mat image5 = Cv2.ImRead("E:\\ModelData\\image\\demo_8.jpg");

yolov8Cls.Predict(new List<Mat> { image1, image2 });

yolov8Cls.Predict(new List<Mat> { image1, image2, image3 });

yolov8Cls.Predict(new List<Mat> { image1, image2, image3, image4 });

yolov8Cls.Predict(new List<Mat> { image1, image2, image3, image4, image5 });

4.3 項(xiàng)目演示

? 配置好項(xiàng)目并編寫好代碼后,運(yùn)行該項(xiàng)目,項(xiàng)目輸出如下所示:

[ INFO ] Input image data processing time: 5.5277 ms.
[ INFO ] Model inference time: 1.3685 ms.
[ INFO ] Classification Top 2 result :
[ INFO ] index: 386     score: 0.8754883
[ INFO ] index: 385     score: 0.08013916
[ INFO ] Classification Top 2 result :
[ INFO ] index: 293     score: 0.89160156
[ INFO ] index: 276     score: 0.05480957
[ INFO ] Inference result processing time: 3.0823 ms.

[ INFO ] Input image data processing time: 2.7356 ms.
[ INFO ] Model inference time: 1.4435 ms.
[ INFO ] Classification Top 2 result :
[ INFO ] index: 386     score: 0.8754883
[ INFO ] index: 385     score: 0.08013916
[ INFO ] Classification Top 2 result :
[ INFO ] index: 293     score: 0.89160156
[ INFO ] index: 276     score: 0.05480957
[ INFO ] Classification Top 2 result :
[ INFO ] index: 14      score: 0.99853516
[ INFO ] index: 88      score: 0.0006980896
[ INFO ] Inference result processing time: 1.5137 ms.

[ INFO ] Input image data processing time: 3.7277 ms.
[ INFO ] Model inference time: 1.5285 ms.
[ INFO ] Classification Top 2 result :
[ INFO ] index: 386     score: 0.8754883
[ INFO ] index: 385     score: 0.08013916
[ INFO ] Classification Top 2 result :
[ INFO ] index: 293     score: 0.89160156
[ INFO ] index: 276     score: 0.05480957
[ INFO ] Classification Top 2 result :
[ INFO ] index: 14      score: 0.99853516
[ INFO ] index: 88      score: 0.0006980896
[ INFO ] Classification Top 2 result :
[ INFO ] index: 294     score: 0.96533203
[ INFO ] index: 269     score: 0.0124435425
[ INFO ] Inference result processing time: 2.7328 ms.

[ INFO ] Input image data processing time: 4.063 ms.
[ INFO ] Model inference time: 1.6947 ms.
[ INFO ] Classification Top 2 result :
[ INFO ] index: 386     score: 0.8754883
[ INFO ] index: 385     score: 0.08013916
[ INFO ] Classification Top 2 result :
[ INFO ] index: 293     score: 0.89160156
[ INFO ] index: 276     score: 0.05480957
[ INFO ] Classification Top 2 result :
[ INFO ] index: 14      score: 0.99853516
[ INFO ] index: 88      score: 0.0006980896
[ INFO ] Classification Top 2 result :
[ INFO ] index: 294     score: 0.96533203
[ INFO ] index: 269     score: 0.0124435425
[ INFO ] Classification Top 2 result :
[ INFO ] index: 127     score: 0.9008789
[ INFO ] index: 128     score: 0.07745361
[ INFO ] Inference result processing time: 3.5664 ms.

? 通過上面輸出可以看出,不同Bath模型推理時(shí)間在1.3685~1.6947ms,大大提升了模型的推理速度。

5. 總結(jié)

? 在本項(xiàng)目中,我們擴(kuò)展了TensorRT C# API 接口,使其支持動(dòng)態(tài)輸入模型。并結(jié)合分類模型部署流程向大家展示了TensorRT C# API 的使用方式,方便大家快速上手使用。

? 為了方便各位開發(fā)者使用,此處開發(fā)了配套的演示項(xiàng)目,主要是基于Yolov8開發(fā)的目標(biāo)檢測、目標(biāo)分割、人體關(guān)鍵點(diǎn)識(shí)別、圖像分類以及旋轉(zhuǎn)目標(biāo)識(shí)別,并且支持動(dòng)態(tài)輸入模型,用戶可以同時(shí)推理任意張圖像。

  • Yolov8 Det 目標(biāo)檢測項(xiàng)目源碼:
https://github.com/guojin-yan/TensorRT-CSharp-API-Samples/blob/master/model_samples/yolov8_custom_dynamic/Yolov8Det.cs
  • Yolov8 Seg 目標(biāo)分割項(xiàng)目源碼:
https://github.com/guojin-yan/TensorRT-CSharp-API-Samples/blob/master/model_samples/yolov8_custom_dynamic/Yolov8Seg.cs
  • Yolov8 Pose 人體關(guān)鍵點(diǎn)識(shí)別項(xiàng)目源碼:
https://github.com/guojin-yan/TensorRT-CSharp-API-Samples/blob/master/model_samples/yolov8_custom_dynamic/Yolov8Pose.cs
  • Yolov8 Cls 圖像分類項(xiàng)目源碼:
https://github.com/guojin-yan/TensorRT-CSharp-API-Samples/blob/master/model_samples/yolov8_custom_dynamic/Yolov8Cls.cs
  • Yolov8 Obb 旋轉(zhuǎn)目標(biāo)識(shí)別項(xiàng)目源碼:
https://github.com/guojin-yan/TensorRT-CSharp-API-Samples/blob/master/model_samples/yolov8_custom_dynamic/Yolov8Obb.cs

? 同時(shí)對(duì)本項(xiàng)目開發(fā)的案例進(jìn)行了時(shí)間測試,以下時(shí)間只是程序運(yùn)行一次的時(shí)間,測試環(huán)境為:

  • CPU:i7-165G7

  • CUDA型號(hào):12.2

  • Cudnn:8.9.3

  • TensorRT:8.6.1.6

Model Batch 數(shù)據(jù)預(yù)處理 (ms) 模型推理 (ms) 結(jié)果后處理 (ms)
Yolov8s-Det 1 16.6 4.6 13.1
4 38.0 12.4 32.4
8 70.5 23.0 80.1
Yolov8s-Obb 1 28.7 8.9 17.7
4 81.7 25.9 67.4
8 148.4 44.6 153.0
Yolov8s-Seg 1 15.4 5.4 67.4
4 37.3 15.5 220.6
8 78.7 26.9 433.6
Yolov8s-Pose 1 15.1 5.2 8.7
4 39.2 13.2 14.3
8 67.8 23.1 27.7
Yolov8s-Cls 1 9.9 1.3 1.9
4 14.7 1.5 2.3
8 22.6 2.0 2.9

? 最后如果各位開發(fā)者在使用中有任何問題,歡迎大家與我聯(lián)系。文章來源地址http://www.zghlxwxcb.cn/news/detail-847532.html

到了這里,關(guān)于TensorRT C# API 項(xiàng)目更新 (1):支持動(dòng)態(tài)Bath輸入模型推理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用Tensorrt部署,C++ API yolov7_pose模型

    使用Tensorrt部署,C++ API yolov7_pose模型

    雖然標(biāo)題叫部署yolov7_pose模型,但是接下來的教程可以使用Tensorrt部署任何pytorch模型。 倉庫地址:https://github.com/WongKinYiu/yolov7/tree/pose 系統(tǒng)版本:ubuntu18.4 驅(qū)動(dòng)版本:CUDA Version: 11.4 在推理過程中,基于 TensorRT 的應(yīng)用程序的執(zhí)行速度可比 CPU 平臺(tái)的速度快 40 倍。借助 TensorRT,您

    2024年02月05日
    瀏覽(26)
  • 【Yolov8】基于C#和TensorRT部署Yolov8全系列模型

    【Yolov8】基于C#和TensorRT部署Yolov8全系列模型

    ? 該項(xiàng)目主要基于TensorRT模型部署套件,在C#平臺(tái)部署Yolov8模型,包括Yolov8系列的對(duì)象檢測、圖像分割、姿態(tài)識(shí)別和圖像分類模型,實(shí)現(xiàn)C#平臺(tái)推理加速Yolov8模型。 完整范例代碼: ? GitHub平臺(tái):guojin-yan/Csharp_deploy_Yolov8 (github.com) ? Gitee平臺(tái):Guojin Yan/基于Csharp部署Yolov8系列模

    2024年02月06日
    瀏覽(20)
  • 4.4.tensorRT基礎(chǔ)(1)-模型推理時(shí)動(dòng)態(tài)shape的具體實(shí)現(xiàn)要點(diǎn)

    4.4.tensorRT基礎(chǔ)(1)-模型推理時(shí)動(dòng)態(tài)shape的具體實(shí)現(xiàn)要點(diǎn)

    杜老師推出的 tensorRT從零起步高性能部署 課程,之前有看過一遍,但是沒有做筆記,很多東西也忘了。這次重新擼一遍,順便記記筆記。 本次課程學(xué)習(xí) tensorRT 基礎(chǔ)-模型推理時(shí)動(dòng)態(tài) shape 的具體實(shí)現(xiàn)要點(diǎn) 課程大綱可看下面的思維導(dǎo)圖 動(dòng)態(tài) shape 指的是在模型編譯時(shí)指定可動(dòng)態(tài)

    2024年02月17日
    瀏覽(20)
  • OpenAI 更新 ChatGPT:支持圖片和語音輸入【附點(diǎn)評(píng)】

    OpenAI 更新 ChatGPT:支持圖片和語音輸入【附點(diǎn)評(píng)】

    ????????9月25日消息,近日OpenAI宣布其對(duì)話AI系統(tǒng)ChatGPT進(jìn)行升級(jí),添加了 語音輸入 和 圖像處理 兩個(gè)新功能。據(jù)OpenAI透露,這些新功能將在未來兩周內(nèi)面向ChatGPT Plus付費(fèi)用戶推出,免費(fèi)用戶也將很快可以使用這些新功能。這標(biāo)志著ChatGPT繼續(xù)朝著多模態(tài)交互的方向發(fā)展,為用戶提

    2024年02月07日
    瀏覽(20)
  • 最新ai創(chuàng)作系統(tǒng)CHATGPT鏡像系統(tǒng)源碼+支持GPT4.0+支持ai繪畫(MJ)+實(shí)時(shí)語音識(shí)別輸入+免費(fèi)更新版本

    最新ai創(chuàng)作系統(tǒng)CHATGPT鏡像系統(tǒng)源碼+支持GPT4.0+支持ai繪畫(MJ)+實(shí)時(shí)語音識(shí)別輸入+免費(fèi)更新版本

    SparkAi創(chuàng)作系統(tǒng)是基于OpenAI很火的ChatGPT進(jìn)行開發(fā)的Ai智能問答系統(tǒng)+AI繪畫系統(tǒng),支持OpenAI GPT全模型+國內(nèi)AI全模型。本期針對(duì)源碼系統(tǒng)整體測試下來非常完美,可以說SparkAi是目前國內(nèi)一款的ChatGPT對(duì)接OpenAI軟件系統(tǒng)。那么如何搭建部署AI創(chuàng)作ChatGPT?小編這里寫一個(gè)詳細(xì)圖文教程吧

    2024年02月13日
    瀏覽(114)
  • c# winform實(shí)現(xiàn)控件類型、數(shù)量的動(dòng)態(tài)更新

    c# winform實(shí)現(xiàn)控件類型、數(shù)量的動(dòng)態(tài)更新

    在系統(tǒng)開發(fā)的過程中,往往會(huì)遇到需要?jiǎng)討B(tài)的控制控件內(nèi)部顯示的控件數(shù)量、控件類型的情況,比如這樣的。 1、問題描述:如何自定義的控制控件中數(shù)據(jù)顯示的類型呢? 首先面對(duì)這個(gè)問題,我們得先了解winform的控制工具中有哪些控件是可以用來承載其他控件工具的,例如以

    2024年02月16日
    瀏覽(20)
  • 【[Qt]基于QChartView開發(fā)的圖表顯示控件,支持實(shí)時(shí)顯示,動(dòng)態(tài)更新,支持鼠標(biāo)交互等操作】

    【[Qt]基于QChartView開發(fā)的圖表顯示控件,支持實(shí)時(shí)顯示,動(dòng)態(tài)更新,支持鼠標(biāo)交互等操作】

    十字線和顯示坐標(biāo)實(shí)現(xiàn) 在.h文件中定義十字線lineitem變量和坐標(biāo)textitem變量 在Cpp文件中初始化 然后定義鼠標(biāo)事件,在鼠標(biāo)進(jìn)入時(shí)顯示,移出時(shí)隱藏,移動(dòng)時(shí)顯示。 其他實(shí)現(xiàn)請(qǐng)參考具體代碼 ChartDrawer.h文件 ChartDrawer.cpp 文件 具體使用代碼如下 1、初始化類對(duì)象,并加入界面布局

    2023年04月23日
    瀏覽(30)
  • Elasticsearch 8.10.0同義詞API用法詳解,支持同義詞熱更新

    Elasticsearch 的同義詞功能非常強(qiáng)大,如果使用得當(dāng),可以顯著提高搜索引擎的效果。使用同義詞功能時(shí)的一個(gè)常見問題是更新同義詞集。 同義詞在搜索引擎領(lǐng)域用途 同義詞在搜索引擎領(lǐng)域的用途可概括如下: 增強(qiáng)搜索的準(zhǔn)確性——當(dāng)用戶輸入一個(gè)時(shí),可能與他們實(shí)際

    2024年02月04日
    瀏覽(41)
  • 已經(jīng)開源的中文大模型對(duì)比,支持更新

    大模型對(duì)比網(wǎng)站:大模型綜合評(píng)測對(duì)比 | 當(dāng)前主流大模型在各評(píng)測數(shù)據(jù)集上的表現(xiàn)總榜單 | 數(shù)據(jù)學(xué)習(xí) (DataLearner) 大模型下載:互鏈高科 ClueAI/PromptCLUE-base-v1-5 at main (huggingface.co) 支持多任務(wù)生成,支持中文,不支持多輪對(duì)話,體驗(yàn):ClueAI (cluebenchmarks.com) 基于promptclue-base進(jìn)一步訓(xùn)

    2024年02月12日
    瀏覽(23)
  • 2023最新ChatGPT商業(yè)運(yùn)營網(wǎng)站源碼+支持ChatGPT4.0+新增GPT聯(lián)網(wǎng)功能+支持ai繪畫+實(shí)時(shí)語音識(shí)別輸入+用戶會(huì)員套餐+免費(fèi)更新版本

    2023最新ChatGPT商業(yè)運(yùn)營網(wǎng)站源碼+支持ChatGPT4.0+新增GPT聯(lián)網(wǎng)功能+支持ai繪畫+實(shí)時(shí)語音識(shí)別輸入+用戶會(huì)員套餐+免費(fèi)更新版本

    提問:程序已經(jīng)支持GPT3.5、GPT4.0接口、支持新建會(huì)話,上下文記憶 支持三種Ai繪畫模型(官方Midjourney模型、GPT3.5KEY繪畫、國內(nèi)其他繪畫模型) 中英文實(shí)時(shí)語音識(shí)別輸入,文章資訊發(fā)布功能,菜單工具欄功能,郵箱驗(yàn)證和手機(jī)短信驗(yàn)證注冊 Prompt角色功能 新增GPT聯(lián)網(wǎng)功能(20

    2024年02月12日
    瀏覽(98)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包