window 下 Android studio 上运行tensorflow

1、在build.gradle

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

2、首先写一个简单的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文件
3、将生成的PB文件放在Androidstudio相应目录下

4、在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模型

本文转载自:window 下 Android studio 上运行tensorflow - private_void_main的博客 - CSDN博客  https://blog.csdn.net/private_void_main/article/details/80717565

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
交叉编译 TensorFlow 可以在 Windows 上的 Ubuntu 子系统中完成。以下是一些基本步骤: 1. 安装 Ubuntu 子系统 首先,你需要在 Windows 上安装 Ubuntu 子系统。可以在 Windows 应用商店中搜索 Ubuntu,并按照提示进行安装。 2. 安装必要的软件包 要进行交叉编译,需要安装一些必要的软件包。在 Ubuntu 终端中输入以下命令以安装这些软件包: ``` sudo apt-get update sudo apt-get install build-essential curl python-dev python3-dev libcurl3-dev git ``` 3. 下载交叉编译工具链 接下来,需要下载交叉编译工具链。在 Ubuntu 终端中输入以下命令: ``` mkdir ~/cross-compilers cd ~/cross-compilers wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz tar -xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz ``` 这将在 `~/cross-compilers` 目录下下载并解压工具链。 4. 设置环境变量 接下来,需要设置环境变量,以便交叉编译工具链能够在 Ubuntu 上正常工作。在 Ubuntu 终端中输入以下命令: ``` export PATH=$PATH:~/cross-compilers/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++ ``` 这将添加工具链的路径,并将交叉编译工具链指定为默认的 C 和 C++ 编译器。 5. 下载 TensorFlow 源代码 接下来,需要下载 TensorFlow 的源代码。在 Ubuntu 终端中输入以下命令: ``` git clone https://github.com/tensorflow/tensorflow.git cd tensorflow ``` 6. 配置 TensorFlow 在 Ubuntu 终端中输入以下命令以配置 TensorFlow: ``` ./configure ``` 在配置过程中,需要回答一些问题。例如,你需要指定交叉编译工具链的路径,并选择要编译的 TensorFlow 版本等。 7. 编译 TensorFlow 完成配置后,可以使用以下命令编译 TensorFlow: ``` bazel build --config=monolithic --config=android_arm //tensorflow/tools/pip_package:build_pip_package ``` 这将使用 Bazel 编译 TensorFlow 并构建 pip 包。 8. 构建 pip 包 最后,可以使用以下命令构建 pip 包: ``` bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg ``` 这将在 `/tmp/tensorflow_pkg` 目录下生成一个名为 `tensorflow-<version>-cp27-cp27mu-linux_armv7l.whl` 的 pip 包。 以上是在 Windows 上的 Ubuntu 子系统中交叉编译 TensorFlow 的基本步骤。根据具体情况可能需要进行一些额外的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值