TensorFlow入门教程:2:概述

在这篇文章中,我们将会学习tensorflow相关的基础知识,以及继续改造和进一步理解10+32=42中,tensor是怎样flow的。
摘要由CSDN通过智能技术生成

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

机器学习 vs 传统算法

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

名称的由来

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

应用领域

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

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

同类框架

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

项目详细
theanohttp://deeplearning.net/software/theano/
torchhttp://torch.ch/
pytorchhttp://pytorch.org/

Kearas

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

开发阶段支持的OS

项番OS
1Windows
2macOS
3Linux

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

运行阶段支持的设备

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

GPU

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

项番详细
1Tensorflow能利用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张量:多维数组
Shapetensor的维度和大小
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 tf
import os

os.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 tf
import os

os.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实践打下基础。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值