TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护的一个深度学习框架。
tensorflow = tensor + flow,也就是有向数据流,我们使用tensorflow就是构建一个数据流图,然后执行该图。
tensorflow数据流图核心要素:
说明:
计算密集型的框架
,主要是cpu/gpu计算
,所以跑tensorflow代码是需要有好的硬件资源的,尤其是GPU资源;tensorflow Playground
google为我们提供了一个tensorflow在线演示环境tensorflow Playground
必须选择以下类型的TensorFlow之一来安装:
基于virtualenv创建隔离环境
登录后复制
mkvirtualenv -p python3.6 tensorflow
基于conda创建隔离环境
登录后复制
conda create -n tensorflow python=3.6
mac下因为硬件原因,只好安装cpu版本。
安装最新版本
登录后复制
pip install --upgrade tensorflow
安装指定版本
登录后复制
pip install tensorflow==1.14.0
验证安装指令
登录后复制
python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
tensorboard是tensorflow提供的可视化界面,建议和tensorflow安装一样的版本。
安装最新版本
登录后复制
pip install --upgrade tensorboard
安装指定版本
登录后复制
pip install tensorboard==1.14.0
如果要安装GPU版本的,需要安装一大堆NVIDIA软件(不推荐):
使用pip安装,分别有2.7和3.6版本的
登录后复制
# 仅使用 CPU 的版本
$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp27-none-linux_x86_64.whl
$ pip3 install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp36-cp36m-linux_x86_64.whl
tensorflow graph中的数据都是张量。
示例代码:
登录后复制
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
b = [[1,2,3],[4,5,6]]
c = [[7,8,9],[10,11,12]]
# 张量合并
d = tf.concat([b,c], axis=0)
with tf.Session() as sess:
print(d.eval())
运行结果如下:
登录后复制
Tensor("Const:0", shape=(), dtype=float32)
Tensor("Add:0", shape=(), dtype=float32)
我们看到结果都是Tensor对象。
只要使用tensorflow的API定义的函数都是op,如constant()、add(),tensorflow的op非常丰富。
tensorflow有一个默认图,如果我们不指定图的话,默认就是在默认图上运行的。
默认图
如果我们不指定图的话,我们使用的是Tensorflow的默认图,它会自动调用graph = tf.get_default_graph()
,相当于给程序分配一段内存,我们所有的Tensor、op都是在这张图上。
示例代码:
登录后复制
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
# 新建2个tensor
a = tf.constant(1.0)
b = tf.constant(2.0)
# 新建1个op
sum = tf.add(a,b)
print(a.graph)
print(b.graph)
print(sum.graph)
# 默认图
graph = tf.get_default_graph()
print(graph)
with tf.Session() as sess:
# 查看会话所在图
print(sess.graph)
运行结果如下:
登录后复制
<tensorflow.python.framework.ops.Graph object at 0x1114caf98>
<tensorflow.python.framework.ops.Graph object at 0x1114caf98>
<tensorflow.python.framework.ops.Graph object at 0x1114caf98>
<tensorflow.python.framework.ops.Graph object at 0x1114caf98>
<tensorflow.python.framework.ops.Graph object at 0x1114caf98>
通过运行结果,我们发现tensor、op和session都在一个图上,也就是系统的默认图。with tf.Session() as sess:
相当于with tf.Session(graph=g) as sess:
。
自定义图
默认使用的是tensorflow默认图,我们也是可以自定义图。
示例代码:
登录后复制
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
# 创建图
g = tf.Graph()
# 使用自定义的图
with g.as_default():
pass
session是一个会话,tensorflow的graph都必须在Session中执行。
会话的作用:
会话对象,我们可以执行创建、运行和关闭等操作。
示例代码:
登录后复制
s = tf.Session()
s.run()
s.close()
会话是graph的上下文环境,只要有Session就有上下文环境。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删