window 下 Android studio 上运行tensorflow

详解如何将TensorFlow训练的模型移植到Android手机 前言本文中出现的TF皆为TensorFlow的简称。先说两句题外话吧,TensorFlow 前两天热热闹闹的发布了正式版r1.0,可感觉自己才刚刚上手 r0.12,这个时代发展的太快,脚步是一刻也不能停啊~但是不得不吐槽 TensorFlow的向下兼容做的实在不太友好,每次更新完版本,以前的代码就跑不动,各种提示您使用的函数已经不存在。。。代码积攒的越来越多,全部针对新版本翻改一遍,工程真是浩大。但 阅读详情

1.开发环境

  1. win10 x64 操作系统
  2. Android 的 IDE : Android Studio

2.问题描述

  1. 网上大多数教程,都是基于 Linux 的开发,对于window上使用tensorflow的描述较少
  2. 大部分教程都是使用 bazel 来将tensorflow的源文件编译成so,jar文件,貌似这个工具对于Linux的支持还是不错的(但暂时不支持Linux 32的操作),但是对window就相对不太友好 ,而且整个过程复杂,本文不会采取这种方法

3.基本知识

3.1 tensorflow

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
—来自百度百科

3.2. Android studio

Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse
ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
—来自百度百科

记得你的Android studio中一定要安装SDK和NDK

4.怎么做

其实很简单,网上教程太复杂了,其实一行代码就能解决,再编译一下的工程,你的Android studio 就有了tensorflow的接口

这里写图片描述

//加入这一行代码就可以,编译之后我们的Android项目就可以使用tensorflow接口
//不需要Bazle之类的工具,进行一系列的操作
compile 'org.tensorflow:tensorflow-android:+'

5.测试

5.1首先写一个简单的python代码

"""
开发时间:2018.6.17
模型作用:简单的矩阵想加
目的:测试Android中tensorflow是否可用
"""
import tensorflow as tf

# 1.注意这里面的 name 很重要,我们给这个tensorflow模型喂值就靠 name !!!
first = tf.constant([1,2],dtype=tf.float32,name="input")

# 就是测试简单的矩阵想加
result = tf.add(first,first,name="output")

# 2.开启一个Session
sess = tf.Session()
sess.run(tf.initialize_all_variables())

# 3.这几行代码就是把当前的模型保存为PB文件,PB文件会保存当前tensorflow的模型,将其他值固化为常量

# 第一个参数 sess指定为当前的Session,第二个参数是要保存的 图的定义,默认是当前图,然后是要输出的节点
output_graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def,
                                                                        output_node_names=['output'])
# 这里是选择要保存的位置
with tf.gfile.FastGFile('F:/android_tensorflow.pb', mode='wb') as f:
        f.write(output_graph_def.SerializeToString())

# 运行以上代码就会在 你选择的对应的目录找打PB文件

5.2将生成的PB文件放在Androidstudio相应目录下

这里写图片描述

5.3 在Android中调用feed 并且运行

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //保存要输入和输出的结果
        float[] inputs = new float[]{7,8}; //随机给定值看是否达到想加的效果
        float[] outputs = new float[2];

        // 这里是那个PB文件的绝对路径
        String filename = "android_tensorflow.pb";

        // 以那个PB文件创建一个tensorflow的接口
        TensorFlowInferenceInterface tensorFlowInferenceInterface =
                new TensorFlowInferenceInterface(getAssets(),filename);

        //1.feed 参数, 第一个参数是 张量的名称 ,第二个是一个一维数组存放数据, 最后指定矩阵的维度,我这里是1行2列
        tensorFlowInferenceInterface.feed("input",inputs,1,2);

        //2.运行要输出的张量
        tensorFlowInferenceInterface.run(new String[]{"output"});

        //3.然后将结果获取到,保存在数组中,方便我们获取
        tensorFlowInferenceInterface.fetch("output",outputs);


        //然后你可以控制台打印出来,或者用textView等在Android界面显示出来,看有没有达到我们的效果,有没有显示两个矩阵的想加
        Toast.makeText(this, String.valueOf(outputs[0])+":"+String.valueOf(outputs[1]),
                Toast.LENGTH_LONG).show();

    }
当我们把这个app下载到手机上就可以看到结果14.0 : 16.0 
我们的Android项目中已经可以成功使用tensorflow的接口运行tensorflow模型
安卓模拟器下使用TensorflowLite实现Object Detection|优快云创作打卡 非常入门的TFLite目标检测,基本上是整合了官网的一些教程,自己加上了配合安卓模拟器使用的这一部分。 移动端比较: 移动端跑深度学习模型大概现在TFLite用的比较多,所以有移动端运行需要的大概就要早期搭网络的时候就使用tensorflow了吧。 我的操作系统是Windows, 目标检测网络为mobileNet+SSD。 搭建过程: 安装andriodstudio,版本3.2以上。(https://developer.android.com/studio/index.html) g. 阅读详情

相关推荐

安卓开发者AI术语全解析:从机器学习到端侧部署

机器学习与深度学习已成为移动应用智能化升级的核心技术,但安卓开发者面对训练集、过拟合、Transformer、RAG、量化、蒸馏等术语时往往难以快速建立完整认知。理解机器学习的基本原理,掌握训练与推理的根本区别,是踏入AI应用开发的第一步。模型训练产出参数文件,推理则在端侧执行预测,这一过程涉及数据标注、算法选择、模型压缩与部署优化。TensorFlow Lite、ML Kit 等工具让端侧推理成为现实,而大模型 API 则提供了云端智能能力。无论是实现图片分类还是智能问答,工程师都需要透析从数据准备到模型

weixin_34055787的博客 361

问问GPT:android中怎么使用tensorflow

绘制关键点的具体实现可能因应用程序而异,具体的实现方式取决于应用程序的需求。但是,使用 Canvas API 在屏幕上绘制关键点的基本思路是相同的:创建一个 Paint 对象,设置绘制属性,然后使用 drawCircle() 或者其他绘图方法在屏幕上绘制关键点。总之,在 Android 中使用 TensorFlow,你需要将 TensorFlow Lite 库添加到你的项目中,将训练好的 TensorFlow 模型转换为 TensorFlow Lite 模型,然后使用 Java API 加载和运行模型。

aaajj的专栏 1267

将tensorflow模型打包成PB文件及PB文件读取方式

1. tensorflow模型文件打包成PB文件 import tensorflow as tf from tensorflow.python.tools import freeze_graph with tf.Graph().as_default(): with tf.device("/cpu:0"): config = tf.ConfigProto(allow_soft_placement=True) with tf.Session(config=config).as_default() as sess: model = Your_Model_Name()

在Android上使用Tensorflow

在安卓平台使用tensorflow项目github 最近更新 2017.6.7添加了app预览如下,更详细请到github 分类预览1: 拍照分类: 程序启动: 自动分类为相册: 最近更新 2017.3.7注意 最近有几个小伙伴询问移动端平台怎样使用自己的模型以及其他相关问题,我对部分问题做了总结,相关的内容在另外一篇博客中,点这里查看。另外大家要使用自己的模型请直接到上述

dongchang's blog 3万+

论文笔记:Group Equivariant Convolutional Networks

Group Equivariant Convolutional Networks 1、四个问题 要解决什么问题? 对卷积神经网络进行扩展,并提出一个在特定的变换(旋转、平移等,也可表示为一个特殊的群)下具有等变性的网络。 用了什么方法解决? 提出了一种新的卷积神经网络结构——群等变卷积神经网络(Group equivariant Convolutional Neural Network)...

hongbin_xu的博客 1万+

408王道考研【数据结构】思维导图(章节详细可下载xmind文件)

由于图片太多,不一一放上来了,还有部分章节【查找、排序、B树B+树等】在百度网盘,可以关注我的公众号领取【完整的图片+xmind文件】,如想要获取xmind文件的同学可以关注我的个人公众号“小柒很爱喵”,回复“数据结构导图”,可获得以上导图原图和xmind文件(可修改导图内容、查看导图隐藏的笔记与备注,即上图带杠杠的地方是我进一步助于理解的解释)。 希望对你们...

weixin_41950078的博客 7988

Android 机器学习模型的轻量级框架 TensorFlow Lite

TensorFlow Lite 是一款用于在移动设备、嵌入式设备和物联网设备上运行机器学习模型的轻量级框架。它是 TensorFlow 在移动领域的延伸,旨在解决手机等设备上机器学习计算资源有限的问题。TensorFlow Lite 通过优化模型大小、量化和包含特定设备需求的内核等方式实现了高效运行模型的能力。

特立独行的博客 4065

VSCode连接SAP ABAP开发环境

本文介绍了使用VSCode连接ABAP开发环境的详细步骤。首先通过SICF或SMICM事务码获取ABAP连接地址,然后安装ABAP remote filesystem插件。提供了两种创建连接的方法:通过命令面板逐步配置(输入服务器地址、账号、系统标识等)或直接编辑JSON配置文件。最后通过命令面板选择已创建的连接即可完成连接,连接成功后可在VSCode左侧工作区查看ABAP系统内容进行开发。JSON配置方式更为简便推荐。整个流程帮助开发者摆脱复杂的Eclipse配置,实现快速便捷的ABAP开发环境搭建。

weixin_45293769的博客 2214

适用于嵌入式设备的TensorFlow:适用于Android的TensorFlow

随着 TensorFlow 和 TensorFlow Lite 的出现,开发人员现在可以将深度学习的强大功能引入 Android 应用程序,使他们能够直接在智能手机上执行复杂的视觉任务,例如图像分类和对象检测。通过利用 Android 中的 TensorFlow Lite,您可以创建功能强大的移动应用程序,这些应用程序可以直接在设备上执行与视觉相关的任务,而无需互联网连接或云服务。在您的代码中,结果 TextView 用于显示移动视觉任务的结果,该结果将使用 TensorFlow Lite 模型生成。

新华编程特战队 1667

告别玄学:手把手配置EtherCAT从站PDI接口与同步采样(含Sync/Latch信号实战)

本文详细解析了EtherCAT从站PDI接口配置与同步采样技术,涵盖微处理器通信与直接驱动IO模式选择、同步采样四大触发模式(SOF、Latch_in、Sync0/Sync1)及输出触发实战。通过伺服驱动器实例,帮助工程师突破配置难点,实现高精度同步控制,提升工业自动化系统性能。

weixin_30667649的博客 483

QFN封装芯片手工焊接实战:从焊盘处理到拖焊技巧

本文详细介绍了QFN封装芯片手工焊接的全过程,从焊盘处理到拖焊技巧,再到常见问题的现场修复方法。通过实战经验分享,帮助工程师和DIY爱好者掌握0.5mm小间距QFN芯片的焊接技术,提升焊接成功率和质量。重点讲解了垂直与平行拖焊手法的对比应用,以及焊后清理与质量检验的关键步骤。

weixin_42652674的博客 532

深度学习(五)——win10环境下将tensorflow的官方demo在Android Studio上运行

一、背景 最近需要在android上用tensorflow做一些东西,网上找了很多教程,关于windows环境下的教程不多,而且运行起来报错非常多,所以就写篇文章记录一下自己的实践经历。 二、实验效果 先给出最终运行好的实验效果图,首先是安装好了官方demo的4个app,分别是物体分类,目标检测,语言识别以及风格转换: 下面打开风格转化app,随便测试一下,可以简单看一下效果: ...

QQ704630835的博客 2554

OpenClaw实战系列06:持久记忆与RAG知识库构建——让AI真正“记住”你

本文介绍了OpenClaw AI助理的持久记忆与RAG知识库构建功能。OpenClaw采用"文件即真理"的独特设计,所有记忆都以Markdown文件形式存储,支持直接编辑和Git版本管理。记忆系统分为三层:长期精炼记忆(MEMORY.md)、日常日志(按日期存储)和归档记忆。文章详细说明了环境配置步骤,包括安装必要组件、创建目录结构、设置API密钥,并提供了OpenClaw主配置文件的完整参数说明。该系统实现了跨会话、跨平台的持久化记忆,使AI助理能真正理解用户需求。

PeterPan的博客 1171

人脸识别 - 运行TensorFlow lite 官方demo(android studio)

假设你已经成功安装了tensorflow了 1 安装Android studio android studio是个用于开发android应用程序的集成开发环境,可以对android应用程序进行基本的编辑、调试,同时支持图形化对控件编辑的功能,在调试时可以实时检测安卓设备的网速、cpu占用率、内存占用率以及图形绘制时间. jdk是Java语言的软件开发工具包,提供了Java语言的编译和运行环境,由于安卓应用程序主要是Java语言编写的,所以jdk是必不可少的。Android Studio要求将Op

qq_15555275的博客 1151

睿抗机器人魔力元宝在完成任务过程中如何使机械臂先到达白色盒子上方而不是先到达工作台?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1378

使用C#和ASP.NET创建登录页面

在Visual Studio中,右键单击项目,选择"添加",然后选择"新建项"。在对话框中选择"Web",然后选择"Web 窗体"。在Visual Studio中,右键单击项目,选择"添加",然后选择"新建项"。在Visual Studio中,选择"新建项目",然后选择"ASP.NET Web应用程序"。在上面的代码中,我们创建了一个简单的用户界面,包含一个用户名输入框、一个密码输入框和一个登录按钮。在上面的代码中,我们创建了一个简单的用户界面,包含一个用户名输入框、一个密码输入框和一个登录按钮。

TzData的博客 763

Android studio编译TensorFlow lite工程

1.系统环境window10/tensorflow-gpu  1.8.0/Python 3.6.4/cuda 9.0/cudnn-9.0-windows10-x64-v7/Android studio 3.1.22.源码下载从Github上下载最新的TensorFlow源码,下载路径:https://github.com/tensorflow/tensorflow.git3.TensorFlow ...

zack的博客 1941

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

使用Tensorflow Lite部署手机端app之android studio的安装(window 10)(2)

本博客仅供个人学习使用,参考原博客进行了修改:https://www.cnblogs.com/renqiqiang/p/6822143.html,如有侵权,联系作者删除。 找到相关比较好的博客: 【Android Studio安装部署系列】目录:https://www.cnblogs.com/whycxb/p/9111254.html 一、Android studio安装与配置 1、首先下...

qq_22169787的博客 1218

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【TensorFlow爬坑记】部署TensorFlow Android Demo到Android Studio时无法打开相机、黑屏问题

Android Studio版本:3.2.1 操作系统:windows 10 在运行官方demo时,出现如下图黑屏情况: 初步断定,没有打开到相机应用,于是定位到Camera.Activity时,发现的确报错,如图: 原来,这是因为由于Android studio3.2.1版本问题,在AndroidManifest.xml中弃用了 <uses-sdk>标签,导致Activity...

weixin_43325818的博客 1320

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

tensorflow 77 tensorflow android版本demo win10 下 编译

01 基本配置 参考官网说明:https://www.tensorflow.org/install/source_windows bazal/msys64的配置参考: https://blog.youkuaiyun.com/longji/article/details/82897664 安装studio 最新版本。重点关注 android sdk/ndk set NDK_ROOT=D:\install\And...

一朵花开的时间 481

【深度学习.Tensorflow】Windows下Android Studio编译tensorflow的官方Demo

Windows下Android Studio编译tensorflow的官方Demo本文参考了这两篇文章:http://blog.youkuaiyun.com/offbye/article/details/78369711http://blog.sina.com.cn/s/blog_6204ca300102x2w2.html感谢原创作者和转载者!0,前提,假设你的Android Studio已经装了NDK,且升...

H_O_W_E的专栏 2808

Android开发环境搭建与性能优化实战指南

Android开发环境搭建是移动应用开发的首要步骤,其中Android Studio作为官方IDE工具链的核心组件,其配置优化直接影响开发效率。通过合理设置JDK版本、SDK组件和网络代理,可以构建稳定的基础开发环境。在工程实践中,ADB调试工具和内存泄漏检测技术是提升应用质量的关键手段,结合LeakCanary和Memory Profiler可实现深度性能优化。动态资源处理和MVVM架构设计则体现了现代Android开发的技术趋势,这些技术在车载系统、IoT设备等场景都有广泛应用。

weixin_34301132的博客 360

UniApp安卓原生插件开发指南与实战技巧

原生插件开发是跨平台框架中解决性能瓶颈和功能扩展的关键技术。通过原生代码与JavaScript的桥接,开发者可以突破Web容器的限制,直接调用平台特有API。这种技术特别适用于需要高性能计算或硬件交互的场景,如蓝牙通信、传感器数据采集等。UniApp作为基于Vue.js的跨平台解决方案,其原生插件机制支持Module和Component两种模式,分别对应功能扩展和原生UI嵌入。在实际开发中,合理处理线程通信、内存管理以及性能优化是保证插件质量的重点。本指南详细介绍了从环境搭建到插件发布的完整流程,并提供了蓝

weixin_34116110的博客 417

TensorFlow-Unreal实战:深度学习模型在虚幻引擎中的集成与部署

深度学习模型部署是将训练好的AI模型应用于实际生产环境的关键环节,其核心原理在于将模型的计算图与参数封装成可独立运行的推理引擎。这项技术的价值在于打通了AI训练与工程应用之间的壁垒,使得智能决策能力能够无缝嵌入到各类软件系统中。在游戏开发、实时仿真和交互式应用等场景中,模型部署能直接驱动角色行为、处理传感器数据并生成动态内容,极大地丰富了用户体验。本文聚焦于TensorFlow SavedModel格式与虚幻引擎的集成,通过MNIST手写识别、实时音频分类及自定义图像分类三个实战案例,详细阐述了从环境配置、

weixin_33735077的博客 412

基于Tensorflow Lite的CIFAR10图像分类模型部署

本博客开设了”深度学习计算机视觉实战“专栏,有兴趣的朋友欢迎访问并分享给您的朋友。 欢迎关注公众号”计算机视觉与OpenCV“,本号可以获取一些学习资料,而且不定期会发出赠书活动。 欢迎加入QQ群”187042448“获取更多的软件编程、AI、机器学习、深度学习的资料。 本文分享的内容来源于《深度学习计算机视觉实战》一书,该书由刘东研究员和肖铃合作完成,由电子工业出版社出版。 该书从算法导读到模型训练,到模型部署一站式搞定,书中案例注释详细,均已通过运行验证。该书包括4个部分: 第一部分(1~2章)深度.

lxiao428的博客 1212
上一篇: 一、LCD12864(带字库的)使用教程:
下一篇: HC-05蓝牙模块使用教程
布鲁格若门
博客等级 码龄9年 431粉丝 43原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布鲁格若门

对你有用的话真是太好了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值