栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++调用Libtorch常见函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++调用Libtorch常见函数

#创建变量 
std::vector inputs;
inputs.push_back(torch::ones({ 1,3,224,224 }));
torch::jit::IValue inputs;

#定义模型变量
torch::jit::script::Module model = torch::jit::load("path");

at::Tensor output = model.forward(inputs).toTensor();
#获取尺寸

ouput.sizes()
int heigh = output.size(0);
int weight = output.size(1);

torch::Tensor out_tensor = output.detach(); # requires_grad为false,
out_tensor = out_tensor.squeeze().detach().permute({ 1, 2, 0 });
// squeeze 减少图像尺寸 permute 交换维度
out_tensor = out_tensor.mul(255).clamp(0, 255).to(torch::kU8); //*255,转uint8 
out_tensor = out_tensor.to(torch::kCPU); //迁移至CPU
cv::Mat resultImg(img_h, img_w, CV_8UC3, out_tensor.data_ptr()); // 将Tensor数据拷贝至Mat
// cv::cvtColor(resultImg, resultImg, CV_RGB2BGR); 


#
cv::Mat tensor2Mat(torch::Tensor &i_tensor)
{
	int height = i_tensor.size(0), width = i_tensor.size(1);
	//i_tensor = i_tensor.to(torch::kF32);
	i_tensor = i_tensor.to(torch::kCPU);
	cv::Mat o_Mat(cv::Size(width, height), CV_32F, i_tensor.data_ptr());
	return o_Mat;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717629.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号