抖音最火
百度360必应搜狗本站头条热榜
当前位置:网站首页 > 玩转快手 > 正文

快手极速版下载2022年最新版免费下载快手,快手极速版下载官方免费

DouJia 2024-01-19 22:30 101 浏览

蓝字关注快手极速版下载2022年最新版免费下载快手我们

微信公众号快手极速版下载2022年最新版免费下载快手:OpenCV学堂

关注获取更多计算机视觉与深度学习知识

ONNXRUNTIME

一直使用快手极速版下载2022年最新版免费下载快手的是ONNXRUNTIME1.7.0版本做推理测试,周末有空就把ONNXRUNTIME版本从1.7.0升级到1.13.1版本了。

升级导致的问题

发现C++部分的代码没有什么变化,有个获取输入输入层名称跟输出层名称的函数没有啦,之前1.7.1对应的获取输入层跟输出层的函数方法如下快手极速版下载2022年最新版免费下载快手

session_.GetInputName(i, allocator);

session_.GetOutputName(i, allocator);

升级到1.13.1版本之后,上面的函数没了,只有下面的函数:

session_.GetInputNameAllocated(i, allocator);

session_.GetOutputNameAllocated(i, allocator);

修改之后,我依然跟之前一样把输入名称跟输出名称保存在两个全局的std::vector里面,然后推理的时候直接作为参数传入,然后我就一直遇到推理错误,一直报input node is empty 或者invalid input node,程序直接崩溃了。 以YOLOv5模型为例,错误信息如下:

错误分析

没升级之前的代码是这样的

std::vectoroutput_bad_names;

for( inti = 0; i < numOutputNodes; i++) {

autoout_name = session_. GetOutputName (i, allocator);

output_bad_names.push_back(out_name.get);

}

正常工作没错误快手极速版下载2022年最新版免费下载快手!升级之后代码是这样的

std::vectoroutput_bad_names;

for( inti = 0; i < numOutputNodes; i++) {

autoout_name = session_.GetOutputNameAllocated(i, allocator);

output_bad_names.push_back(out_name.get);

}

然后我在推理之前打印了一下这个output_bad_names这个数组,打印代码如下:

for( autoitem : output_bad_names) {

快手极速版下载2022年最新版免费下载快手,快手极速版下载官方免费

std:: cout<< "output node:"<< item << std:: endl;

}

输出的结果如下:

而且我还注意到并不是每次打印输出的结果并不一致,相当随机。有时候会正确推理一次。多数时候都直接挂了。所以我很怀疑

autoout_name = session_.GetOutputNameAllocated(i, allocator);

获取的AllocatedStringPtr指针是个临时变量,过了for循环之后会随机释放掉,然后我定义了一个全局的变量来测试一下,

constchar*ddd = "Hello World";

for( inti = 0; i < numOutputNodes; i++) {

auto out_name = session_.GetOutputNameAllocated(i, allocator);

ddd = out_name. get;

output_bad_names.push_back(out_name. get);

}

运行一下,输出结果如下:

看来GetOutputNameAllocated返回的必须作为全局变量才行,Bug捉到了!

代码修改与测试

解决的方法很简单就是把查询到这些节点名称全部**一份到一个全局的std::vector对象中去,这样就算返回的临时变量被复写或者或者变化了,不会影响到保存好的全局变量。先初始化一下定义的std::vector的输入与输出节点数组:

size_tnumInputNodes = session_.GetInputCount;

size_tnumOutputNodes =session_.GetOutputCount;

for( inti = 0; i < numInputNodes; i++) {

input_node_names.push_back( std:: string( ""));

}

for( inti = 0; i < numOutputNodes; i++) {

output_node_names.push_back( std:: string( ""));

}

然后读取输出节点保存一下:

for( inti = 0; i < numOutputNodes; i++) {

autoout_name = session_.GetOutputNameAllocated(i, allocator);

output_node_names[i].append(out_name.get);

}

然后在推理之前创建临时变量就好啦:

conststd::arrayinputNames = { input_node_names[ 0].c_str };

conststd::arrayoutNames = { output_node_names[ 0].c_str, output_node_names[ 1].c_str, output_node_names[ 2].c_str, output_node_names[ 3].c_str };

然后就可以直接推理了:

std::vectorort_outputs = session_.Run(Ort::RunOptions{ nullptr}, inputNames.data, &input_tensor_, 1, outNames.data, outNames.size);

快手极速版下载2022年最新版免费下载快手,快手极速版下载官方免费

启动ONNXRUNTIEM推理可以运行了, KeyPointRCNN+ONNXRUNTIEM C++ 的推理演示如下:

CPU与GPU推理

我下载了ONNXRUNTIEM1.13.1的GPU版本,然后使用CPU推理,发现速度比Python版本快了那么一点点,显示如下:

启动GPU选项之后的推理速度:

GPU版本如何启动

关于ONNXRUNTIEM1.13.1 GPU版本如何启动下载GPU版本下面有三个dll支持

onnxruntime.dll

onnxruntime_providers_cuda.dll

onnxruntime_providers_shared.dll

onnxruntime.dll是核心依赖库。

onnxruntime_providers_cuda.dll是跟版本匹配 CUDA加速才启作用。

onnxruntime_providers_shared.dll表示支持兼容低版本 CUDA比。

ONNXRUNTIEM1.13.1 GPU官方支持的是11.6版本,而我自己安装的版本是11.3,必须把上述三个dll文件放到项目文件夹下或者把路径配置到环境变量中去。启动GPU添加下面的代码:

this->session_options.SetGraphOptimizationLevel(ORT_ENABLE_BASIC);

OrtSessionOptionsAppendExecutionProvider_CPU( this->session_options, 0);

这样就可以启用GPU运行了,当没有GPU它会自动转到CPU模式去推理,真的很开发者友好。

扫码查看OpenCV+OpenVIO+Pytorch系统化学习路线图

CV全栈开发者说 - 从传统算法到深度学习怎么修炼

2022入坑深度学习,我选择Pytorch框架!

Pytorch轻松实现经典视觉任务

教程推荐 | Pytorch框架CV开发-从入门到实战

OpenCV4 C++学习 必备基础语法知识三

OpenCV4 C++学习 必备基础语法知识二

OpenCV4.5.4 人造型检测+五点landmark新功能测试

OpenCV二值图象分析之Blob分析找圆

OpenCV4.5.x DNN + YOLOv5 C++推理

OpenCV4.5.4 直接支持YOLOv5 6.1版本模型推理

OpenVINO2021.4+YOLOX目标检测模型部署测试

比YOLOv5还厉害的YOLOX来了,官方支持OpenVINO推理

相关推荐

快手在线观看8788157842158094265683027944766218,快手在线观看平台直播
快手在线观看8788157842158094265683027944766218,快手在线观看平台直播

小编下面就来教大家方法吧1首先我们先在手机里面找到快手应用并点击打开登录账号2接着在好友列表里找到快手在线观看平台直播你想要观看她直播的人快手在线观看平台直播,...

2024-12-07 14:30 DouJia

快手官网登录入口手机版,快手官网首页登录
快手官网登录入口手机版,快手官网首页登录

快手平台上开设店铺快手官网首页登录的用户,如果需要管理商品销售,可以通过访问快手小店网页版来操作具体登录网址为操作步骤包括首先打开快手应用,进入设置菜单,然后选...

2024-12-07 12:30 DouJia

快手小游戏打开网络不稳定,快手小游戏打开
快手小游戏打开网络不稳定,快手小游戏打开

  科联网讯许多智能手机用户都已经发现了一个让人无奈快手小游戏打开的情况:手机剩余电量的显示并不是那么可靠。如果你也曾经遇到过手机在还有20%剩余电量的时候...

2024-12-07 10:31 DouJia

4399生死狙击官网,4399生死狙击
4399生死狙击官网,4399生死狙击

在4399生死狙击中快速升级至50级4399生死狙击,可以采取一系列有效4399生死狙击的策略首先,一定不要错过收藏奖励,这是快速累积经验值的绝佳途径其次,坚持...

2024-12-07 08:30 DouJia

快手短视频在线观看下载,快手小视频免费下载
快手短视频在线观看下载,快手小视频免费下载

    1、新版快手短视频在线观看下载的手机QQ快手短视频在线观看下载,再界面样式上面有啦很大的改变,所以之前的“设置”现在在界面上也已经看不到啦,只要你在“...

2024-12-07 06:30 DouJia

快手视频剪辑怎么赚钱(快手视频剪辑怎么赚钱快手上为什么去赚钱那个栏)
快手视频剪辑怎么赚钱(快手视频剪辑怎么赚钱快手上为什么去赚钱那个栏)

1、其次,广告合作也是快手视频剪辑赚钱快手视频剪辑怎么赚钱的重要途径当创作者的粉丝数量和播放量达到一定水平时,会有广告主主动寻求合作这种合作方式可以是通过在视频...

2024-12-07 04:30 DouJia

快手电脑版官方下载安到电脑,快手电脑版官方下载安到电脑桌面
快手电脑版官方下载安到电脑,快手电脑版官方下载安到电脑桌面

  大学生零基础学java电脑编程好吗快手电脑版官方下载安到电脑?答案是肯定的快手电脑版官方下载安到电脑,现在很多大学生由于找不到合适的工作后来都转行学java...

2024-12-07 02:30 DouJia

快手短视频在线观看浏览器,快手短视频在线观看打开
快手短视频在线观看浏览器,快手短视频在线观看打开

快手设置观看模式快手短视频在线观看打开的方法如下1打开快手APP快手短视频在线观看打开,点击左上角三条横杆,进入个人主页2点击观看模式,进入观看模式页面3选择自...

2024-12-07 00:30 DouJia

快手短视频观看官网(快手 短视频平台快手 短视)
快手短视频观看官网(快手 短视频平台快手 短视)

  重庆APP开发公司https://www.appchongqing.net/快手短视频观看官网,未来久科技表示快手短视频观看官网:  随着移动互联网技术...

2024-12-06 22:30 DouJia

快手电脑版官方下载最新版2020,快手电脑版官方下载最新版2020年
快手电脑版官方下载最新版2020,快手电脑版官方下载最新版2020年

2012年11月快手电脑版官方下载最新版2020,快手从纯粹快手电脑版官方下载最新版2020的工具应用转型为短视频社区,用于用户记录和分享生产生活的平台后来随着...

2024-12-06 20:30 DouJia

快手视频在线观看入口电脑(快手网页版在线看 视频)
快手视频在线观看入口电脑(快手网页版在线看 视频)

  【丫丫网手机资讯】快手视频在线观看入口电脑你说,快手视频在线观看入口电脑你从没去过澳门,也从没去过赌场,为何iPhone每天都能收到好几条澳门博彩节的信息呢...

2024-12-06 18:30 DouJia

快手电脑版官方下载官网app,快手电脑版最新版本2021下载
快手电脑版官方下载官网app,快手电脑版最新版本2021下载

下载方法如下登录网址然后下载注册安装应用宝Android是腾讯应用中心倾力打造的手机应用商店快手电脑版官方下载官网app,以上就是应用宝电脑版官方下载...

2024-12-06 16:30 DouJia