什么是TensorFlow

Posted 扒一扒AI人工智能

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是TensorFlow相关的知识,希望对你有一定的参考价值。

        TensorFlow是google开发的神经网络框架。要想了解什么是TensorFlow,就要知道什么是神经网络。

        神经网络是最近非常流行的机器学习技术。在今年通过围棋的方式进入普通人的视野。简单来说神经网络是一种沟通过机器学习实现的分类器。我们来想象一下围棋下棋的过程。围棋棋盘有19乘以19个点(361个点)。棋手在下围棋的时候考虑当前棋子落在棋盘的哪个点上会获得最大的胜算。对于神经网络来说,可以把这361个点,视为361个不同类别,也就是361个筐。神经网络就是通过当前的棋局情况,选择胜算最大的筐,把棋子当前放到这个筐里。具体神经网络通过什么方式获得最大胜算的落子点,以后在详细介绍,否则您就没有耐心读完本文了......

        通过TensorFlow,机器学习的工程师可以非常容易的实现多层神经网络模型。并通过训练,获得更佳准确的分类结果。

        TensorFlow通过是开源的程序库。工程师可以通过C++或者Python来使用TensorFlow进行机器学习的应用和研究。

        在使用TensorFlow时,程序员不再需要了解如何实现各种神经网络,而是只需要根据需求定义神经网络。然后准备数据,通过训练提高分类的准确性。有了训练后的模型,我们就用它来根据新的数据进行分类。例如AlphaGo系列,首先程序员对围棋的特点构建多层神经网络,利用人类棋手对战的历史数据对这个神经网络模型进行训练。在学习了无数的高手对决之后,AlphaGo有了调优后的神经网络模型。再利用这个神经网络模型战胜人类高手。所有的神经网络搭建过程都类似于此。

        其实目前除了TensorFlow,还有很多神经网络框架,例如PyTorch,Caffe,Caffe2,CNTK,DyNet.TensorFlow对于它的竞争对手有很多优势。当然它也有自己的问题和局限性。首先TensorFlow有TensorFlowBoard,它将神经网络的配置和训练过程可视化了。工程师可以更加直观的对自己的神经网络进行配置。非常有意思的是,通过TensorFlowBoard还可以看到数据是如何在各个层流动从而影响分类结果的。其次TensorFlow通过TensorFlowFold实现了动态计算流图的机制。在此之前TensorFlow只支持静态计算流图。关于什么是动态计算流图,以后我们会介绍。通过动态计算流图,TensorFlow可以对自然语言理解(NLU),视觉处理等领域有很大帮助和优化。因为NLU对于每个输入数据都是长短不一的文字,并且对于每个句子段落,语义树也是不一样的,动态计算流图可以为各个层上不同的输入数据建立自己的计算流图。除此之外,TensorFlow在2017年11月发布了TensorFlow Lite。TensorFlow Lite实现了在移动设备和嵌入式设备上搭建轻型神经网络应用。

        总之,TensorFlow是一个很强大的神经网络框架,拥有大量的社区支持。如果你是神经网络的初学者或者对于神经网络的搭建和速度没有特殊要求,TensorFlow是个很好的选择。

 


以上是关于什么是TensorFlow的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow入门和示例分析

TensorFlow入门和示例分析

tensorflow

TensorFlow基础知识

TensorFlow——机器学习编程框架

深度学习-开源方案