一、常见的OP
1、举例
类型 | 实例 |
标量运算 | add,sub,mul,div,exp,log,greater,less,equal |
向量运算 | concat,slice,splot,canstant,rank,shape,shuffle |
矩阵运算 | matmul,matrixinverse,matrixdateminant |
带状态的运算 | variable,assgin,assginadd |
神经网络组件 | softmax,sigmoid,relu,convolution,max_pool |
存储、恢复 | save,restore |
队列及同步运算 | enqueue,dequeue,mutexAcquire,mutexRelease |
控制流 | merge,switch,enter,leave,nextIteration |
二、什么是操作函数和操作对象
1、说明
(1)一个操作对象(Operation)是TensorFlow图中的一个节点,可以接收0个或者多个输入Tensor,并且可以输出0个或者多个Tensor,Operation对象是通过op构造函数(如tf.matmul())创建的
(2)例如c = tf.matmul(a, b)创建了一个Operation对象,类型为MatMul类型,它将张量a、b作为输入,c作为输出
(3)其中tf.matmul()是函数,在执行matmul函数的过程中会通过MatMul类型创建一个与之对应的对象
2、前一篇图例中有Const和Const_1就是tf.constant()生成的操作对象
这个操作对象输入的是Tensor对象,输出的也是Tensor对象
相当于前面机器学习的实例化一个预估器对象,操作函数实例化了一个操作对象,然后操作对象输入对象转变为输出对象
3、可以理解为操作函数都会产生一个操作对象,通过对象对参数进行处理
三、打印语句
1、语句类似于
Tensor("Const:0", shape=(), dtype=int32)
Tensor("Const_1:0", shape=(), dtype=int32)
打印返回的都是Tensor对象,而不是看到操作
2、指令名称
Tensor分成三个部分,其中“Const:0”、“Const_1:0”告诉我们这个Tensor对象是由哪一个操作产生的,称为指令名称!
3、打印出来的是张量值,可以理解成Operation中包含了这个值
4、每一个Operation指令都对应一个唯一的名称,如Count:0
5、tf.Tensor输出该张量的名称的形式为<OP_NAME>:<i>,其中
<OP_NAME>:是生成该张量的指令的名称
<i>:是一个整数,它表示该张量在指令的输出中的索引