Android中运行Tensorflow程序2-编写自己的程序

这篇博客介绍了如何在Android中运行TensorFlow程序,从创建和保存自定义模型,冻结图,参数解析,到构建Android App并导入模型。详细步骤包括模型的训练与保存,使用tffreeze工具生成frozen模型,以及在Android Studio中配置TensorFlow库,将优化后的模型文件集成到应用中进行预测。
摘要由CSDN通过智能技术生成

官方给出的demo中运行已经打包好的模型,没有解释怎样从零开始构建自己的模型。参考网站https://omid.al/posts/2017-02-20-Tutorial-Build-Your-First-Tensorflow-Android-App.html,自己做了一些尝试。

准备我们自己的TF模型

首先,我们创建一个简单的模型,把它的计算图保存为一个序列化的GraphDef文件。训练之后,把模型的变量值保存到checkpoint文件中。最后,我们需要把这两个文件变成一个优化了的独立的文件,这个文件是我们在Android App中所需要的所有文件。

创建和保存模型

主要目的是演示过程,所以模型十分简单:一个采用ReLU的单层网络。代码如下:

# Create a simple TF Graph 
# By Omid Alemi - Jan 2017
# Works with TF r1.0

import tensorflow as tf

I = tf.placeholder(tf.float32, shape=[None,3], name='I') # input
W = tf.Variable(tf.zeros(shape=[3,2]), dtype=tf.float32, name='W') # weights
b = tf.Variable(tf.zeros(shape=[2]), dtype=tf.float32, name='b') # biases
O = tf.nn.relu(tf.matmul(I, W) + b, name='O') # activation / output

saver = tf.train.Saver()
init_op = tf.global_variables_initializer()

with tf.Session() as sess:
  sess.run(init_op)

  # save the graph
  tf.train.write_graph(sess.graph_def, '.', 'tfdroid.pbtxt')  

  # normally you would do some training here
  # but fornow we will just assign something to W
  sess.run(tf.assign(W, [[1, 2],[4,5],[7,8]]))
  sess.run(tf.assign(b, [1,1]))

  #save a checkpoint file, which will store the above assignment  
  saver.save(sess, 'tfdroid.ckpt')

运行上面的代码会把模型的计算图保存在tfdroid.pbtxt文件中,同时把模型变量的checkpoint保存在tfdroid.ckpt中。

冻结图

接下来需要把checkpoint中的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值