当前位置: 首页 > news >正文

Tensorflow C++ API从入门到放弃

1、由

搭建了一个基于Tensorflow的小模型,想把它弄到手机上可随时把玩。

可惜Python与Android似乎水土不服,难以移植应用。

于是想到了tensorfow的C++ API,结合Qt不就有了吗?于是就有了这一番探究。

2、缘

搜索了很多,没有使用Qt qmake或cmake直接编译tensorflow C++的源代码的。

 tensorflow官方支持bazel编译成支持各种平台的库文件来使用。比如Android的so库:

TensorFlow编Android so库总结_tensorflow 编译android so-CSDN博客

Tensorflow C++ so库 for Android 编译全记录_tensorflow so库-CSDN博客

于是下载了bazel,但没有直接安装,想着先看看有没有编译好的库直接拿来试一下。于是找到了官方给的链接:

安装 C 版 TensorFlow

下载解压得到了windows平台的库文件: 

3、入

使用Qt创建一个新工程,在pro文件中设置tensorflow C++头文件和库文件目录:

INCLUDEPATH += $$PWD/../../libtensorflow-cpu-windows-x86_64-2.6.0/include
LIBS += -L$$PWD/../../libtensorflow-cpu-windows-x86_64-2.6.0/lib    \-ltensorflow

在cpp中加入c_api头文件,并打印tf版本:

#include "tensorflow/c/c_api.h"// ...某函数内:setWindowTitle("TF_Test, TF version:"+QString(TF_Version()));qDebug() << "tf version:" << TF_Version();

编译成功,运行成功,成功打印了TF的版本号:

tf version: 2.6.0

4、弃

一切看起来比较顺利,于是创建一个张量来试试,看了看c_api头文件,使用TF_NewTensor来新建张量,又请教了百度,使用了如下代码:

    // 定义数据类型和数据TF_DataType dtype = TF_FLOAT; // 数据类型为 floatfloat data[] = {1.0, 2.0, 3.0, 4.0}; // 数据数组,这里是一个 2x2 的矩阵size_t data_size = sizeof(data); // 数据大小int64_t dims[] = {2, 2}; // 张量形状为 [2, 2]int num_dims = 2; // 形状的大小,这里是2维// 创建 TF_Tensor -- 会崩溃TF_Tensor* tensor = TF_NewTensor(dtype, dims, num_dims, data, data_size, nullptr, nullptr);if (tensor == nullptr) {qDebug() << "Failed to create tensor.";} else {qDebug() << "Successed to create tensor.";}// 使用完 tensor 后释放TF_DeleteTensor(tensor);

编译没有问题,但运行不起来!调试到TF_NewTensor,程序就崩溃了,且没有原因可查!

又搜寻了其它一些方法,都不太对。

查看官方的教程,就是一股脑地介绍API函数,没有示例啊!

TensorFlow C++ API Reference  |  TensorFlow v2.6.0

而且c_api.h的函数都没找到啊,难道要生肯?!

于是先放弃吧,有机缘再入。

相关文章:

  • 第五届信息技术与当代体育国际学术会议(TCS 2025)
  • JavaWeb-1 概述
  • 微信小程序form表单手机号正则检验pattern失效
  • Cordova + Vue 移动端视频播放组件(支持 HLS + 原生播放器兜底)
  • 腾讯云TCCP认证考试报名 - TDSQL数据库交付运维高级工程师(MySQL版)
  • 五子棋流量主小程序单模式多模式开源版
  • Java Map 深度解析
  • flex布局 项目属性
  • 介绍一款免费MES、开源MES系统、MES源码
  • Docker 日志
  • 博图SCL中CONTINUE语句详解:高效循环控制案例
  • 性能优化中的工程化实践:从 Vite 到 Webpack 的最佳配置方案
  • FastAPI的初步学习(Django用户过来的)
  • Python实例题:基于 TensorFlow 的图像识别与分类系统
  • 68、数据访问-crud实验-删除用户完成
  • 中泰制造企业组网新方案:中-泰企业国际组网专线破解泰国工厂访问国内 OA/ERP 卡顿难题
  • infinisynapse 使用清华源有问题的暂时解决方法:换回阿里云源并安装配置PPA
  • Day05_数据结构(二叉树快速排序插入排序二分查找)
  • AT8236-单通道直流有刷电机驱动芯片
  • 开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件
  • 政府网站建设管理工作会议/最近一周国内热点新闻
  • 长春做网站的公司有哪些/nba排名最新赛程
  • nb-iot网站开发/seo搜索引擎优化课后答案
  • 台州手机模板建站/网络营销服务公司有哪些
  • 企业网站推广短平快/怎样推广产品
  • 新疆电商网站建设公司/百度大数据查询平台