简单介绍一下tensorflow的一些概率,毕竟刚刚接触这玩意,还有好的不懂,就得记个笔记,方便日后回顾
目录
1、Tensorflow 3个核心概念
1.1、Graph(计算图)
在Tensorflow中,计算图是一个有向图,用来描述计算节点与计算节点之间的关系
官网的解释:https://www.tensorflow.org/guide/graphs?hl=zh-cn
下面看一个例子:
import tensorflow as tf
g = tf.Graph()
with g.device("/cpu:0"):
d = tf.constant([10, 9, 8, 7])
e = tf.constant([1, 2, 3, 4])
f_1 = d + e
print(d.graph, e.graph)
sess = tf.Session()
print(sess.run(f_1))
结果:
我们可以发现:
g = tf.Graph() 新建计算图,注意不同计算图上的张量是不能共享的,这个存在于变量
with g.device("/cpu:0") 指定计算图使用的设备
在一套标准的系统上通常有多个计算设备. TensorFlow 支持 CPU 和 GPU 这两种设备. 我们用指定字符串 strings
来标识这些设备. 比如:
"/cpu:0"
: 机器中的 CPU"/gpu:0"
: 机器中的 GPU, 如果你有一个的话."/gpu:1"
: 机器中的第二个 GPU, 以此类推...
1.2、Tensor(张量)
tensor 叫张量;TensorFlow 这一框架定义和运行涉及张量的计算。张量是对矢量和矩阵向潜在的更高维度的泛化。TensorFlow 在内部将张量表示为基本数据类型的 n 维数组。但张量在tensorflow中的实现并不是直接采用数组的形式,它只是对tensorflow中运算结果的引用。在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。
1.3、Session (会话)
在tensorflow中,计算图的计算过程都是在会话下进行的,同一个会话内的数据是可以共享的,会话结束计算的中间量就会消失。
用法1:(常用)
import tensorflow as tf
with tf.Session as sess:
print(sess.run(result))
用法2:
import tensorflow as tf
sess = tf.Session()
with sess.as_defalut():
print(result.eval())
用法3:交互式
import tensorflow as tf
sess = tf.InteractiveSession() #自动成为默认会话
总结:
使用 TensorFlow, 你必须明白 TensorFlow:
使用图 (graph) 来表示计算任务.
在被称之为 会话 (Session) 的上下文 (context) 中执行图.
使用 tensor 表示数据.
通过 变量 (Variable) 维护状态.
使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.
2、常用的tensorflow基础api
tf.nn
tf.nn.max_pool 池化
等等
请多参考官方文档:https://www.tensorflow.org/versions/r1.13/api_docs/python/tf