神经网络基础
核心概念(Data Flow Graph数据流图)
Data Flow Graph数据流图
该图片为数据流图,表示输入s1和s2,进行s3 = s1*s2,s4 = s1+s2然后输出到下一层,完成s4+s3
在这里面只是将计算方式进行了定义,并没有进行一个执行,也就是计算的定义和执行是分开的
而TensorFlow运行时候就是以数据流图来实现的
计算图
import tensorflow as tf
'''在即将到来的TensorFlow2.0中将对部分机制做出重大调整,
其中之一就是将原有的静态图机制调整为动态图机制,这将使得TensorFlow更加灵活和易用,
在2.0版本到来之前,我们可以通过 tf.enable_eager_execution() 方法来启用动态图机制。
不然会报错(报图为空的错误)
'''
tf.compat.v1.disable_eager_execution()
#定义一图完成3,5的相加,这里的a只是完成了定义,并没有运算(图计算的定义)
a = tf.add(3,5)
#当调用tf.compat.v1.Session()开始进行图计算的执行(进入打开图)
with tf.compat.v1.Session() as sess:
#运算a
a = sess.run(a)
print(a)
结果为
在这里可以看到TensorFlow的图是需要流动也就是Session后才可以开始运算
图的运行的依赖会自动找它需要的依赖自动执行,例如要想得到c那么要先得到a和b,TensorFlow会自动完成所需依赖a和b的运算,不需要主动run它们
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
x = 2
y = 3
a = tf.add(x,y)
b = tf.multiply(x,y)
c = tf.pow(a,b)
with tf.compat.v1.Session() as sess:
#运算a
c = sess.run(c)
print(c)
Tensor(张量)
在TensorFlow中可以理解为一个n维矩阵
这里的3维、4维等并不一定代表时间序列等,上图只是举例