-
前言
tensorflow是一个符号式编程框架,需要定义graph,然后用一个session来运行这个graph得到结果
在graph中,我们需要定义数据和操作
其中,数据就是Tensor对象;而操作就是Operation对象,简称OP
记住这两点
-
常见OP
区分一下操作函数与操作对象:
先举个例子:
import tensorflow as tf
def op_demo():
a = tf.constant(5)
print("a:\n",a)
return None
if __name__ == "__main__":
op_demo()
在上述程序中:
a = tf.constant(5)
tf.constant()是操作函数,该函数所做的是创建一个常数
上述程序的输出结果:
a:
Tensor("Const:0", shape=(), dtype=int32)
其中的Const就是一个操作对象
那操作函数和操作对象之间有什么联系呢?
在调用操作函数时,如上面的tf.constant(),一般会传入Tensor对象(数据),如上面的5
在调用操作函数的过程中,会生成一个操作对象,如上面的Const
一个操作对象是TensorFlow图中的一个节点,可以接受0个或多个输入Tensor对象,并且可以输出0个或多个Tensor对象
拿上面的例子来说的话,Const接受了5这个Tensor对象,然后输出了5这个Tensor对象。
赋值可能不太好理解,以加法为例
import tensorflow as tf
a = tf.constant(5)
b = tf.constant(6)
c = tf.add(a,b)
print("a:\n",a)
print("b:\n",b)
print("c:\n",c)
tf.add(5,6)创建了一个操作对象Add,操作对象Add的输入为5,6,经过加法操作之后,Add这个对象输出为11,通过tf.add()这个操作函数返回看下程序输出结果:
a:
Tensor("Const:0", shape=(), dtype=int32)
b:
Tensor("Const_1:0", shape=(), dtype=int32)
c:
Tensor("Add:0", shape=(), dtype=int32)
操作对象是通过操作函数产生
注意,打印出来的是张量值,可以理解为OP中包含了这个值,并且每一个OP指令都对应一个唯一的名称,如上面的Const,Const_1