基于paddlex的C#环境配置及其部署【附带安装包】

news2024/11/18 11:45:09

前言

最近应老师要求部署一个基于paddlex的C#环境,踩了一些坑,经过几个版本的安装测试,最终成功,这里记录一下。此次用到的所有软件的安装包如下:
在这里插入图片描述
补充的vs 2019安装包:
在这里插入图片描述
官方参考链接(没有环境安装,只有后续部署的演示):
https://www.bilibili.com/video/BV1vS4y1R7wT?p=2&vd_source=85763a97844d5b0e829b6a756a4c651c

安装包链接:
链接:https://pan.baidu.com/s/1o8Isqd0KQgyKg6h_9He8ZA
提取码:wjwj
–来自百度网盘超级会员V5的分享

安装步骤

第1步:安装vs 2019

双击下面exe文件,安装2019 community版本即可,
在这里插入图片描述
选择需要的安装包建议勾选以下3个:
在这里插入图片描述
安装路径如下:(这里可以更改自己路径,如下图我安装到E盘)
在这里插入图片描述
然后勾选右下角安装,等待软件自己安装即可(看网速,可能5-10分钟左右)
等待安装完毕之后,去搜索本机的应用,找到其文件夹所在,把快捷方式拖到桌面。双击运行程序。
在这里插入图片描述
测试软件是否安装正常,选择创建新项目如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
启动之后出现如下界面,说明环境配件成功:
在这里插入图片描述

第2步:安装cuda_10.2

首先使用cmd命令查看nvidia驱动,如下我的驱动是11.7,(安装的cuda版本 小于等于 cuda驱动版本即可),这里我选择安装的是10.2,后续测试11.6也是可以的,根据自己需要安装。

命令:nvidia-smi

在这里插入图片描述
建议保持默认安装,一直下一步(使用精简安装)即可,不要更改位置。
在这里插入图片描述
安装完毕之后查看系统环境变量(出现如下,说明安装成功):
在这里插入图片描述
在这里插入图片描述
使用cmd命令查看一下:

nvcc --version

在这里插入图片描述

第3步:安装cudnn_10.2

在这里插入图片描述
如下解压的文件位置:
在这里插入图片描述

第4步:安装cmake-3.18.5-win64-x64

双击
在这里插入图片描述
在这里插入图片描述
更改路径:
在这里插入图片描述

第5步:安装opencv-3.4.6-vc14_vc15

这里首先先创建一个关于paddlex环境部署的文件(paddle_ddldemo)下,后续可以讲各种paddlex的部署文件丢进入:
在这里插入图片描述
双击安装,选择安装位置就是刚刚创建的文件夹(paddle_ddldemo)即可,等待自行安装完毕之后,是一个opencv文件。
在这里插入图片描述
添加opencv环境变量
在这里插入图片描述

第6步:解压paddle_inference 和 PaddleX-develop 和TensorRT-7.0.0.11 和OpenCvSharp-4.7.0-20230116

解压这些文件到上述创建的文件中(paddle_ddldemo)
在这里插入图片描述
确保目录等级如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

添加系统path环境变量
在这里插入图片描述

第7步:使用cmake工具编译文件

参考视频教程:前言中的视频链接12分钟的地方开始看

第一次加载的时候会报错,但是可以先不用管,是正常的。
在这里插入图片描述
选择vs 2019的工程
在这里插入图片描述
添加的路径文件如下:
在这里插入图片描述
按下 open project 之后,就会打开vs工程文件,这里需要修改俩个地方:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要将E:\paddle_ddldemo\opencv\build\x64\vc15\bin\opencv_world346.dll文件
拷到E:\paddle_ddldemo\PaddleX-develop\deploy\cpp\out\paddle_deploy中
在这里插入图片描述在这里插入图片描述

第8步:打开官方的C#工程

在这里插入图片描述
**1.**最好在联网的情况下启动:从c#工程。
在这里插入图片描述
**2.**如果有依赖包之后,就可以运行程序,出现如下界面,说明工程是正常的。
在这里插入图片描述
**3.**接下来就要为这个工程配置加载训练模型的环境

首先拷贝文件:
在这里插入图片描述
将上图的文件model_infer.dll
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
完成以上文件的拷贝之后,再次运行c#工程,就可以加载训练模型去测试了。
文件中提供了一个yolov3的测试模型,以及图片
在这里插入图片描述
解压该文件夹将得到如下文件
在这里插入图片描述
在这里插入图片描述
点击模型加载之后:检测到GPU可以使用之后,就会弹出该弹窗,
在这里插入图片描述
然后再按照上面步骤来,最后运行成功就会出现如下界面,说明环境已经配置完成:

在这里插入图片描述

补充说明:

如果在第8步打开c#工程文件的时候,出现如下的弹窗
在这里插入图片描述
在vs工程中出现如下界面,说明确实一部分.net sdk环境,
在这里插入图片描述
这个时候需要安装下述软件,之间默认安装即可,安装完成之后,再打开C#工程应该就能使用了:
在这里插入图片描述
如果安装我上述的版本出现如下问题:那么就需要自己刚改适配自己版本的
在这里插入图片描述
参考链接如下:
https://dotnet.microsoft.com/zh-cn/download/dotnet/5.0
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/374931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Meta利用视觉信息来优化3D音频模型,未来将用于AR/VR

我们知道,Meta为了给AR眼镜打造智能助手,专门开发了第一人称视觉模型和数据集。与此同时,该公司也在探索一种将视觉和语音融合的AI感知方案。相比于单纯的语音助手,同时结合视觉和声音数据来感知环境,可进一步增强智能…

ERD Online 4.0.9 在线数据库建模、元数据管理平台(免费、私有部署)

ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能,辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 4.0.9 ❝ feat(erd): 主键生…

Opencv项目实战:21 美国ASL手势识别

0、项目介绍 首先,我可以保证在这里,你并不需要多么了解深的机器学习算法,我的初衷是通过本项目,激发大家学习机器学习的动力。选择这种手势原因是因为只有24个字母,你的电脑足以带的动,虽然我只训练A、B、…

group by聚合分组后如何获取分组数据

之前用group by分组后一直困惑怎么把分组后的数据拿到,因为分组后同一组的只有一条数据,最后发现了group_concat函数。记录一下,以后能用。语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator…

【MySQL - InnoDB 存储结构】行格式详解

我们平时对 MySQL 的了解都只是限制在使用层面上,但是难道你就没有一个时刻好奇 MySQL 的内部结构嘛,我们通过 SQL 语句插入的一条条记录在 MySQL 底层到底是以什么格式存储的呢 ? 本文就将以 InnoDB 存储引擎为例子,介绍 MySQL 存…

专科top4|临床医生CSC公派博士后美国凯斯西储大学医院赴职

Q医生符合CSC公派博士后申报条件,我们先为其取得Hopkins的邀请函并获CSC批准,后因导师失联,为保险起见,我们又继续申请并获得凯斯西储大学医学院彩虹宝宝和儿童医院的邀请函,该院连续20年被评为全美最好儿童医院&#…

【vulhub漏洞复现】CVE-2015-5254 ActiveMQ反序列化漏洞

一、漏洞详情Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。配置Apache ActiveMQ需要提前有jdk的环境。基于MQTT,消息订阅和分…

Javascript的API基本内容(三)

一、事件流 假设页面里有个div,当触发事件时,会经历两个阶段,分别是捕获阶段、冒泡阶段简单来说:捕获阶段是 从父到子 冒泡阶段是从子到父实际工作都是使用事件冒泡为主 二、页面加载事件 加载外部资源(如图片、外联CS…

Portraiture4免费磨皮插件支持PS/LR

Portraiture 4免去了繁琐的手工劳动,选择性的屏蔽和由像素的平滑,以帮助您实现卓越的肖像润色。智能平滑,并删除不完善之处,同时保持皮肤的纹理和其他重要肖像的细节,如头发,眉毛,睫毛等。 一键…

Python Flask + Echarts 轻松制作动态酷炫大屏( 附代码)

目录一、确定需求方案二、整体架构设计三、编码实现 (关键代码)四、完整代码五、运行效果1.动态实时更新数据效果图 说明: 其中 今日抓拍,抓拍总数,预警信息统计,监控点位统计图表 做了动态实时更新处理。 ​ 2.静态…

Java岗面试题--Java并发(volatile 专题)

目录1. 面试题一:谈谈 volatile 的使用及其原理补充:内存屏障volatile 的原理2. 面试题二:volatile 为什么不能保证原子性3. 面试题三:volatile 的内存语义4. 面试题四:volatile 的实现机制5. 面试题五:vol…

用c语言模拟实现常用字符串函数

目录 一.常用字符串函数介绍 1.strlen 2. strcpy 3.strcmp 4.strcat 5.strstr 二.模拟实现常用字符串函数 1.strlen 2.strcpy 3.strcmp 4.strcat 5.strstr 一.常用字符串函数介绍 1.strlen 字符串strlen是用来求字符串长度的,我们可以打开cpp网站查看有关…

浅谈模型评估选择及重要性

作者:王同学 来源:投稿 编辑:学姐 模型评估作为机器学习领域一项不可分割的部分,却常常被大家忽略,其实在机器学习领域中重要的不仅仅是模型结构和参数量,对模型的评估也是至关重要的,只有选择那…

vector迭代器失效与深浅拷贝问题

目录 1、vector迭代器失效问题 1.1、insert迭代器失效 扩容导致野指针 意义变了 官方库windows下VS和linux下对insert迭代器失效的处理 1.2、erase迭代器失效 官方库windows下VS和linux下对erase迭代器失效的处理 1.3、迭代器失效总结 2、深浅拷贝问题 1、vector迭…

GeoServer发布数据进阶

GeoServer发布数据进阶 GeoServer介绍 GeoServer是用于共享地理空间数据的开源服务器。 它专为交互操作性而设计,使用开放标准发布来自任何主要空间数据源的数据。 GeoServer实现了行业标准的 OGC 协议,例如网络要素服务 (WFS)…

Java【优先级队列】模拟实现 + 【PriorityQueue】介绍

文章目录一、什么是优先级队列二、模拟实现1, 实现堆的基本操作1.1, 创建堆1.2.1, 向下调整1.2, 堆的插入1.2.1, 向上调整1.2, 堆的删除2, 实现优先级队列2.1, offer -- 插入数据2.1, poll -- 删除数据三、Java提供的PriorityQueue1, PriorityQueue说明2, 使用PriorityQueue2.1…

【Linux】安装Tomcat教程

目录 1.上传安装包 2.解压安装包 3.启动Tomcat 4.查看启动日志 5.查看进程 6.开放端口 7.停止Tomcat 1.上传安装包 使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux(与前面上传JDK安装包步骤 一致)。 2.解压安装包 将上传上来的安装包解压到指定目录…

2023年想跳槽,什么类型的人才需求最多?

某招聘网站资深HR对此表示:纵观当前招聘市场,无论是比较火爆的互联网行业还是传统行业,技能型人才都是最受欢迎的人才之一;那些拥有职场一技之能的跳槽者往往跳的结果更好,包括薪酬水平和发展空间、重视程度等。 那选择…

一个更适合Java初学者的轻量级开发工具:BlueJ

Java是世界上最流行的编程语言之一,它被广泛用于从Web开发到移动应用的各种应用程序。大部分Java工程师主要是用IDEA、Eclipse为主,这两个开发工具由于有强大的能力,所以复杂度上就更高一些。如果您刚刚开始使用Java,或者您更适合…

如何简化跨网络安全域的文件发送流程,大幅降低IT人员工作量?

为什么要做安全域的隔离? 随着企业数字化转型的逐步深入,企业投入了大量资源进行信息系统建设,信息化程度日益提升。在这一过程中,企业也越来越重视核心数据资产的保护,数据资产的安全防护成为企业面临的重大挑战。 …