概述
本文主要讲解TensorFlow(以下简称TF)在Android中的使用,主要分为三个部分来讲解。第一部分为TF介绍,主要让读者明白一些基本概念和原理,以及模型的保存方式。第二部分为Android中使用TF的原理与方法,包括使用已经训练好的模型。第三部分为使用TF的官方代码,在Android Studio下构建TensorFlow Android Camera Demo。
由于此文的目的在于介绍基本的Android中使用TF,所以对于复杂的涉及TF的代码不予详细的说明,如果有条件,我会单独设立系列专题总结TF的特性。
TF介绍
TF的计算是通过一个计算图(computation graph,有时也称有向图,directed graph)模型来完成的,图中流动的数据称为tensor(张量),因此得名tensorflow。使用TF完成一个目标就是需要搭建一个对应的图模型(Graph),一个图可以分解为Node节点(一个节点表示一个操作,operation)、在图中流动的tensor、节点之间的连接边(edge)。Node可看做是一个计算节点,接受任意数量的输入,给出任意数量的输出,比如一个常量节点接受0个输入,给出对应的常量输出。TF使用placeholder来获得模型的输入,Variables来表示模型里需要训练的参数。
如以下代码定义了y=W*x+b的一个线性模型
W = tf.Variable(1.,name="W")
b = tf.Variable(-1.,name="b")
x = tf.placeholder(tf.float32,name='x')
y =tf.placeholder(tf.float32,name='y')
y_ =tf.add(tf.multiply(W,x,name="W_x"),b,name="output")
对应的图模型为