人工智能系列-什么是TensorFlow?

唐大明白

发布时间:18-11-1220:51

TensorFlow干什么?

TensorFlows是人工智能AI领域的一个重要软件工具,是谷歌开发的开源软件(即免费的)。 人工智能领域分为三个方面,即基础层、技术层和应用层;而TensorFlow就是技术层中的学习框架。所谓学习框架,你可以用它来处理大量数据,快速建立数学模型,这些模型可以完成智能功能,例如自动识别一个图片里面的人物是否是范冰冰,当你百度范冰冰时,这个模型就可以识别并呈现范冰冰的图片;TensorFlow就好像一个功能强大的机床,它可以帮助制造出不同的产品(即数学模型)。

TensorFlow是什么?

TensorFlow是一个软件,在该软件里面,用户需要使用Python等语言通过编程来搭建数学模型,这些模型被用于人工智能的应用,例如 通过模型判断图片中的物体分别是什么,例如下图的案例,某个模型识别出海边左下角是人person并给出判断的概率99%。

一般如何使用TensorFlow?

1.用户向TensorFlow(简称TF))输入搭建模型所需的信息,并转化为可处理数据 。TF可以处理图片/视频/音频等信息。例如:用户导入1万张人物图片,并通过TF将不同尺寸图片统一裁剪为24x24像素大小。

2.搭建模型。 TF提供很多的函数模块,在搭建模型过程中,用户可以调用这些函数。例如gradient descent梯度下降函数来求解模型的参数;如交叉熵损失loss()函数来判断模型是否最优。

TF核心程序由2个独立部分组成: a:Building the computational graph构建计算图; b:Running the computational graph运行计算图。例如简单计算a+b, 对应的计算图如下。 对应的程序代码是:a = tf.placeholder(tf.float32),b = tf.placeholder(tf.float32),adder_node = a + b 。

一个实际的案例:MNIST是机器学习领域的一个经典问题,指的是让机器查看一系列大小为28x28像素的手写数字灰度图像,并判断这些图像代表0-9中的哪一个数字。对应的计算图如下。

3.训练和评估模型

循环地迭代式训练和评估模型,以便确定模型中的参数。例如使用梯度下降(gradient descent)函数方法获得交叉熵损失最小化。

训练的每一步都是通过用户代码控制。 例如一个简单循环是:for step in xrange(max_steps): sess.run(train_op) ;

3.1特点:状态可视化 。在训练模型过程中,有TensorBoard,查看即时数据的情况。

3.2 训练过程大量计算部分可以分配给其他设备,如本机的GPU或其他服务器(即分布式计算)。下面是一个案例,将训练部分分配给2个GPU。

TensorFlow Lite是什么?

人工智能的数学模型在训练和评估时需要强大的计算设备来支持,例如几个或几百个服务器,最后得到的数学模型的文件也很大,一般无法在手机等移动终端上使用。于是在2017年谷歌发布了TensorFlow Lite,提供简单的、小文件的数学模型,用于在手机等设备上使用。

返回顶部