欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

win10调用tensorflow C++API(无需编译)

程序员文章站 2024-03-14 21:47:59
...

内容简短,直接上操作!

Step1 文件下载

requirements:

对应版本的libtensorflow,下载链接:https://storage.googleapis.com/tensorflow

下载方式:在链接中找到对应版本的libtensorflow,如用于windows的1.13.1的libtensorflow-gpu

win10调用tensorflow C++API(无需编译)

则补全链接https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-windows-x86_64-1.13.1.zip

Step2 配置

本配置在VS中进行。

Case1

下载后解压,版本较新的会包含.lib文件,则按照常规的配置头文件目录(Include Directories)、库文件目录(Library Directories)和链接器输入(Linker->Input)

win10调用tensorflow C++API(无需编译)

win10调用tensorflow C++API(无需编译)

C++代码:

需要vcruntime140_1.dll,可在此链接搜索下载https://www.dll-files.com/

#include<stdio.h>
#include<tensorflow\c\c_api.h>
#include<filesystem>

int main() {
	printf("Hello from TensorFlow C library version %s\n", TF_Version());
	system("pause");
	return 0;
}

win10调用tensorflow C++API(无需编译)

Case2

但1.13.1的只有头文件和.dll文件,若要调用,无需配置其他,只需要包含<windows.h>,利用LoadLibrary函数提取libtensorflow.dll对应函数。

C++代码:

#include<windows.h>
#include <stdio.h>
//#include "c_api.h"//TF头文件

int main() {
	HMODULE p=LoadLibrary("tensorflow.dll");
	if (p == NULL) {
		printf("NULL");
		return 1;
	}
	//const char* TF_Version(void);//c_api.h中的函数
	const char*(*TF_Version)(void)=(const char*(*)(void))GetProcAddress(p, "TF_Version");//获取TF_Version函数指针
	
	printf("Hello from TensorFlow C library version %s\n", TF_Version());
	system("pause");
	return 0;
}

输出:

win10调用tensorflow C++API(无需编译)

 

后记:

使用libtensorflow2.3.0配置中,发现也可调用tensorflow1.13.1的tensorflow.dll,应该是函数名字定义一致。鸡贼点也可利用libtensorflow2.x.x的文件来配置工程,再调用libtensorflow1.x.x的dll。

完!