一、张量及操作
1、张量介绍
(1)tensor类型
DT_FLOAT、DT_DOUBLE、DT_INT64、DT_INT32、DT_INT16、DT_INT8、DT_STRING、DT_BOOL
(2)rank(阶)维度
a = [[1,2,3],[4,5,6],[7,8,9]]表示为2阶,看几层中括号就行
(3)shape (形状) 表示内部组织关系
a = [[1,2,3],[1,2,3]]描述为(2,3)
2、张量相关操作
(1)类型转换
如:tf.to_double(x)
(2) 数值操作
(3)形状变换
(4)数据操作
tf.splice(input,begin,size,name=None)
参考连接https://blog.csdn.net/chenxieyy/article/details/53031943
3、算数运算函数
4、矩阵相关运算
4、复数相关操作
5、降维计算
6、分割操作
7、序列比较
二、共享变量
1、Variable的用法
2、get_variable
第二个get_var1 发生崩溃,说明个get_variable只能定义一次指定名称的变量,这里面使用相同的firstvar, 更改如下:
由此看出使用get_variable创建两个同样名字的变量是不行的
var1 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
var2 = tf.get_variable('firstvar',shape=[2],dtype=tf.float32)
如果想要这么做,需要在特定作用域下获得变量,如下所示:
在不同作用域下生成的var1,var2是不同的,这就是scope的作用,scope还支持嵌套,如下所示:
scope里面有个参数reuse,如果reuse=true表示定义过的变量,不再定义新的变量,而是去找原来此作用域的值,如下所示:
表明 var1和var3共用一个变量、 var2和var4共用一个变量,注意如果代码报错需要重置图在代码中加入 tf.reset_default_graph()即可
3、初始化共享变量作用域
如下所示:
4、作用域和操作符的受限范围
三、图的基本操作
1、建立图
注意:tf.reset_default_graph()函数会将当前图的资源全部释放,否则报错,当图中用tf.InteractiveSession建立会话时,结束没有close关闭,执行tf.reset_default_graph()函数时会报错
2、获取张量
3、获取结点操作