当前位置:主页 > c/c++教程 > 将TensorFlow模型封装成DLL供C#调用

C++下如何将TensorFlow模型封装成DLL供C#调用

发布:2023-03-13 14:00:01 59


给网友们整理相关的编程文章,网友夏恺乐根据主题投稿了本篇教程内容,涉及到C++、TensorFlow模型、TensorFlow模型封装DLL、C#调用DLL、将TensorFlow模型封装成DLL供C#调用相关内容,已被372网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

将TensorFlow模型封装成DLL供C#调用

生成dll

IDE使用visual studio 2015。

首先新建一个C++win32工程,选择dll,包括导出符号,但不要预编译头。

模板会提供一个工程同名的头文件和一个源文件。

在源文件中将TensorFlow头文件和其他需要使用的头文件引用进来。

在源文件中定义需要export的函数。

在头文件中给出需导出函数的声明。

extern 关键字后加“C”保证在C#调用时不生成中间函数名。

编译环境选择X64,配置好include、lib目录以及附加依赖项文件,生成解决方案。

在输出目录会看见生成了dll文件。

使用C#调用dll

new project,创建一个C#控制台程序进行测试,将C#工程添加到当前solution中,右键设为工程第一启动项。打开C#工程属性,将build选项中的平台设置为x64(很关键)

在C#的cs文件中首先include 头文件system.runtime.interopservices。将dll工程的输出目录设置为C#的debug目录,与EXE文件同级。

重新生成解决方案,此时生成的tfdll.dll会出现在C#的debug目录下。

使用DllImport导入dll文件,如下图所示代码即可调用dll中的函数。

若出现badimage报错,试图加载不正确的dll,可能是由于位数选择出错,dll和C#冲突。

若出现找不到dll报错,可能是由于未将此dll所需的依赖dll一同拷入debug文件夹下。

下图中的TensorFlow的dll即是tfdll的依赖库。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • C++中strstr函数的实现方法总结

    发布:2022-06-18

    给网友朋友们带来一篇关于C++的教程,这篇文章主要介绍了C++中strstr函数的实现方法总结的相关资料,希望通过本文能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下


  • C++语义copy and swap示例详解

    发布:2023-03-08

    这篇文章主要为大家介绍了C++语义copy and swap示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • C++实现会员管理程序的具体方案

    发布:2021-06-01

    这篇文章主要为大家详细介绍了C++实现会员管理程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • C++实现单置换密码

    C++实现单置换密码

    发布:2022-09-12

    给网友们整理关于C++的教程,这篇文章主要为大家详细介绍了C++实现单置换密码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • QT通过C++线程池运行Lambda自定义函数流程详解

    发布:2023-03-03

    最近在接触公司的一个QT桌面项目,其中里面有一个模块是使用线程池去运行自定义函数的,自己潜心研究那个线程池代码一天,发现研究不透,看不懂,里面几乎都是使用C++11的新特性进行编写


  • C++ IO设备读写功能实现详解

    发布:2023-03-10

    C++的文件IO(Input,Output)操作就是指对文件进行读写(输入与输出)的操作。输入就是从磁盘上的文件中读取内容到内存中。输出就是将内存中的数据内容输出或者说写入到磁盘的文件中,这篇文章主要介绍了C++ IO设备读写功能实现


  • C++使用easyX库实现三星环绕效果流程详解

    发布:2023-03-07

    EasyX是针对C/C++的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。这篇文章主要介绍了C++使用easyX库实现三星环绕效果,需要的可以参考一下


  • 浅析设计模式中的代理模式在C++编程中的运用

    浅析设计模式中的代理模式在C++编程中的运用

    发布:2022-09-23

    给大家整理了关于C++的教程,这篇文章主要介绍了设计模式中的代理模式在C++编程中的运用,代理模式最大的好处就是实现了逻辑和实现的彻底解耦,需要的朋友可以参考下


网友讨论