C++ 调用pytorch进行inference

本文介绍了如何在C++中利用libtorch调用预先训练的PyTorch模型进行推理,特别是在分割网络上的应用。通过对比,发现C++的推理速度显著快于PyTorch环境,例如在测试296张图片时,C++仅需33秒,而PyTorch则需要140秒。这展示了C++在模型部署和效率上的优势。
摘要由CSDN通过智能技术生成
int main() 
{
	int img_size = 224;
	torch::DeviceType device_type = at::kCUDA;
	cout << "use cuda" << endl;
	// Deserialize the ScriptModule from a file using torch::jit::load().
	Module module = torch::jit::load("G:/pytorch/model.pt");
	std::cout << "ok\n";
	module.to(device_type);
	assert(module != nullptr);
	std::cout << "ok\n";
	
	Mat src, image, float_image;
	src = imread("G:/pytorch/predict-app/data/1.jpg"); //读图

	resize(src, image, Size(img_size, img_size));


	cvtColor(image, image, CV_BGR2RGB);//bgr->rgb
	image.convertTo(float_image, CV_32F, 1.0 / 255);//归一化到[0,1]区间


	auto img_tensor = torch::from_blob(float_image.data, { 1, 224, 224, 3 });

	img_tensor = img_tensor.permute({ 0, 3, 1, 2 });

	// Create a vector of inputs.
	std::vector<torch::jit::IValue> inputs;
	//inputs.push_back(torch::ones({ 1, 3, 224, 224 }).to(at::kCUDA));

	i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值