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

下载快手极速版最新版本2020领现金,快手极速版下载2022年最新版免费如何领钱

DouJia 2024-01-11 22:30 124 浏览

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

微信公众号:OpenCV学堂

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

ONNXRUNTIME

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

升级导致的问题

发现C++部分的代码没有什么变化,有个获取输入输入层名称跟输出层名称的函数没有啦,之前1.7.1对应的获取输入层跟输出层的函数方法如下:

session_.GetInputName(i, allocator);

session_.GetOutputName(i, allocator);

升级到1.13.1版本之后,上面的函数没快手极速版下载2022年最新版免费如何领钱了,只有下面的函数:

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);

}

正常工作没错误!升级之后代码是这样的

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) {

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);

下载快手极速版最新版本2020领现金,快手极速版下载2022年最新版免费如何领钱

}

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

看来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);

启动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推理

相关推荐

快手市值缩水原因,快手市值缩水
快手市值缩水原因,快手市值缩水

由于快手是一家未上市没有公开财务数据快手市值缩水的公司,因此无法确定其未来市值不过根据2021年6月底快手发布快手市值缩水的财报,快手的DAU已经超过123亿,...

2025-02-23 12:30 DouJia

快手头像图片大全女生:展现个性与风采,快手头像图片大全女生可爱
快手头像图片大全女生:展现个性与风采,快手头像图片大全女生可爱

在这个社交媒体盛行的时代,每个人的在线形象都显得尤为重要。尤其是对于活跃在快手等社交平台上的女生们来说,一个独特的头像不仅能够展现个人风格,还能在茫茫人海中脱颖...

2025-02-23 11:30 DouJia

快手头像图片大全风景:探索自然之美,快手头像图片大全风景卡通头像
快手头像图片大全风景:探索自然之美,快手头像图片大全风景卡通头像

在这个快节奏的数字时代,社交媒体平台成为了人们表达自我、分享生活的重要途径。快手作为其中的一员,吸引了数以亿计的用户,他们在这里分享各种内容,从日常生活到旅行风...

2025-02-23 11:30 DouJia

探索快手头像图片大全:高清精选与个性表达,快手头像图片大全高清伤感
探索快手头像图片大全:高清精选与个性表达,快手头像图片大全高清伤感

在这个数字时代,社交媒体平台如快手已成为人们展示自我、分享生活的重要途径。头像作为个人在这些平台上的第一印象,显得尤为重要。今天,我们将深入探讨快手头像图片大全...

2025-02-23 11:30 DouJia

快手在线观看电影,快手完整版电影在哪里看
快手在线观看电影,快手完整版电影在哪里看

  「视频服务」其实最早是由广播电视与有线电视提供的,透过电视机播放。然而,从移动互联网兴起以来,年轻观众迅速转移到了电脑与手机上。视频网站与APP纷纷转向提供...

2025-02-23 10:30 DouJia

快手头像背后的个性与故事,快手头像图片背影情侣
快手头像背后的个性与故事,快手头像图片背影情侣

在这个视觉驱动的数字时代,一个简单的头像图片往往承载着丰富的信息和故事。快手,作为中国广受欢迎的短视频社交平台,其用户的头像图片更是如此。这些头像图片的背影,不...

2025-02-23 09:30 DouJia

快手头像图片风景:探索自然之美,快手头像图片风景大全
快手头像图片风景:探索自然之美,快手头像图片风景大全

在当今数字化时代,快手等社交媒体平台已成为人们表达自我和分享生活的重要渠道。其中,风景图片作为快手头像,不仅展现了用户的审美情趣,更是一种对自然之美的追求和向往...

2025-02-23 09:30 DouJia

快手头像图片:寻找你的高清形象大使,快手头像图片高清图片背影
快手头像图片:寻找你的高清形象大使,快手头像图片高清图片背影

在这个数字化迅速发展的时代,社交媒体平台成为了人们展示自我、交流互动的重要场所。快手,作为中国最受欢迎的短视频社交平台之一,拥有庞大的用户群体。在这样的平台上,...

2025-02-23 09:30 DouJia

快手在线观看我是枪手(快手在线观看我是枪手电视剧)
快手在线观看我是枪手(快手在线观看我是枪手电视剧)

延续快手在线观看我是枪手了前作的故事设定作为潘安子导演的最新作品,此前双城计中计中粗砺的视觉风格明快的转场节奏荒诞的喜剧特色以及无处不在的阴谋诡计,这些有着浓...

2025-02-23 08:30 DouJia

快手头像下载攻略:打造个性化的网络形象,快手头像下载软件
快手头像下载攻略:打造个性化的网络形象,快手头像下载软件

在当今这个数字化的世界,社交媒体成为了我们表达个性、分享生活的重要平台。快手作为一款流行的短视频社交应用,深受广大用户的喜爱。在快手上,一个独特的头像不仅能够吸...

2025-02-23 07:30 DouJia

快手头像大全2023最新版:个性与潮流的完美融合,快手头像大全2023最新版图片
快手头像大全2023最新版:个性与潮流的完美融合,快手头像大全2023最新版图片

在这个数字化时代,社交媒体平台成为我们展示个性、分享生活的重要场所。快手作为中国领先的短视频社交平台,吸引了大量用户通过视频和图片来表达自己。而头像作为个人在社...

2025-02-23 07:30 DouJia

快手头像太模糊上传不了?这些解决方法帮你搞定,快手头像上传不了怎么回事
快手头像太模糊上传不了?这些解决方法帮你搞定,快手头像上传不了怎么回事

在如今这个数字化时代,社交媒体成为了我们日常生活中不可或缺的一部分。快手作为中国最受欢迎的短视频平台之一,吸引了大量用户。然而,不少用户在尝试更换头像时遇到了一...

2025-02-23 07:30 DouJia