TensorFlow入门教程:2:概述

来源:互联网 发布:笑气在淘宝上叫什么 编辑:程序博客网 时间:2024/06/06 09:40

这里写图片描述
在这篇文章中,我们将会学习tensorflow相关的基础知识,以及继续改造和进一步理解10+32=42中,tensor是怎样flow的。

机器学习 vs 传统算法

Tensorflow是一个用于创建和发布机器学习模型的框架。传统的算法中,我们会编写程序清楚地写下规则告诉计算机在所有的情况下应该怎样做。而机器学习算法里,我们不会显示的列出所有规则,而是喂给它数据称之为训练,而机器学习则会通过这样的训练得到它自己的规则,这就是和传统算法最显著的差别。

名称的由来

这个要从tensorflow的设计初衷出发,tensorflow不是被设计用来直接完成神经网络等的实现,而是为了处理许多不确定的有差别的个体要素所组成的大量数据,而这些数据可以存放在多维数组之中,而这些多维数组就被称为tensor。而操作这些数据,我们一般需要构建一个computional graph,比如BP网络就是这样做的,而整个过程就是数据在构建的这个系统中的流动的过程。在这篇文章中,我们将会继续炒一下冷饭,看一下上一篇的helloworld中的那个神奇的42的加法在tensorflow中的具体含义,看看这些tensor是如何flow的。

应用领域

tensorflow已经开始在很多领域展开了应用实践的落地,尤其是一些传统解决起来比较负责的领域,恰恰是tensorflow的强项,比如:

  • 图像识别
  • 语音识别
  • 图像风格转换
  • 自动翻译

同类框架

研究Deep Learning,Tensorflow不是第一个也不是唯一的一个,类似的还有很多,比如

项目 详细 theano http://deeplearning.net/software/theano/ torch http://torch.ch/ pytorch http://pytorch.org/

Kearas

Tensorflow到神经网络的实现,还是需要了解不少ANN相关的基础知识的,而诸如Kearas此类的框架则进一步的集成,提供了一个更加容易使用的黑盒子,更加方便的API,而其实Kearas本身就是一个基于Theano和TensorFlow的深度学习库,有很好的易用性,适合快速体验。

开发阶段支持的OS

项番 OS 1 Windows 2 macOS 3 Linux

PS:同时支持Cloud或者本地的方式

运行阶段支持的设备

项番 设备 1 本地运行Windows/Linux/macOS的机器 2 运行Tensorflow服务的Linux服务器 3 Google的Machine Learning Engine Service的云服务 4 iOS或者Android等移动设备

GPU

Tensorflow支持GPU进行运算,但是需要注意如下三点:

项番 详细 1 Tensorflow能利用NVIDIA-Brand GPUs 2 目前Tensorflow不支持NVIDIA-brand以外的其他vendor的GPU 3 使用GPU时,Tensorflow需要安装CUDA和cuDNN(NVIDIA)

编程语言相关

简单来说C++更快python更易用。为了提高执行速度,Tensorflow的核心执行引擎就是使用c++写的,而python更容易使用而且支持地更好。

10+32=42

在Helloworld的例子中,我们介绍了10+32=42的彩蛋的意义。而在这篇文章中,我们继续使用这个梗,趁机介绍一下tensor是如何flow的。

属于&基本概念

概念 详细 tensor 张量:多维数组 Shape tensor的维度和大小 computional graph 计算图 data flow graph 数据流图 Variable 变量,一般用来表示图中的各计算参数,包括矩阵,向量等。y=f(ax+b),变量一般用于保存a和b的值(训练参数) placeholder 占位符,在 TensorFlow 用来描述等待输入的节点,只需要指定类型即可,具体的值在运行时传入(feed_dict) operation/op 操作,加减乘除等具体运算在tensorflow中被称为操作 Node 节点,一般把某特定操作的称为计算图的一个节点 Session 会话,Tensorflow的具体操作的执行必须在Session中进行 创建模型 tensorflow第一步要创建模型 训练 创建模型之后,使用数据进行学习,称为训练

模型

这里写图片描述

代码

[root@liumiaocn ~]# cat tensor_add.py import tensorflow as tfimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'A = tf.placeholder(tf.float32,name="A")B = tf.placeholder(tf.float32,name="B")cal_op = tf.add(A,B,name="addition")session = tf.Session()result = session.run(cal_op, feed_dict={A:[10],B: [32]})print(result)session.close()[root@liumiaocn ~]# 

执行

[root@liumiaocn ~]# python tensor_add.py [ 42.][root@liumiaocn ~]#

调整tensor

42是一个神奇的数字,代表着宇宙的真谛,所以调整一下,也可以有很多中情况得到42,这个梗差不多能说一辈子那么长了。

[root@liumiaocn ~]# cat tensor_add.py import tensorflow as tfimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'A = tf.placeholder(tf.float32,name="A")B = tf.placeholder(tf.float32,name="B")cal_op = tf.add(A,B,name="addition")session = tf.Session()result = session.run(cal_op, feed_dict={A:[10,11,12,13,14],B: [32,31,30,29,28]})print(result)session.close()[root@liumiaocn ~]# 

执行

[root@liumiaocn ~]# python tensor_add.py [ 42.  42.  42.  42.  42.][root@liumiaocn ~]#

总结

这篇文章了解了tensorflow一些概述性的东西,知道了为什么叫做tensorflow,它是如何flow的,在后面的文章中我们将进一步学习基础知识为ANN实践打下基础。