重要概念:
一、基础概念
张量:使用张量(tensor)表示数据,用“阶”表示张量的维度。关于这一点需要展开一下
0阶张量称为标量,表示单独的一个数
1阶张量称为向量, 表示一个一维数组
2阶张量称为矩阵,表示一个二维数组
……
数据流:数据流(data stream)是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。
二、TF基本概念
节点:nodes,
边:edges,分为正常边和特殊边。正常边数据可以自由流动,特殊边可以控制节点的互相依赖,使数据处理遵循一定的顺序。为多线程运行数据的执行,提高计算设备的效率。
会话:Session,是TF的主要交互方式。
TF处理数据的流程:
1.建立会话
2.生成一张空的图
3.添加各个节点和边
4.形成一个有连接点的图
.5.启动图对模型进行训练
变量的定义:
%静态
hello = tf.constant('Hello TensorFlow!' , dtype = tf.string)
a = tf.constant(1)
%动态
input = tf.variable(2,tf.int32)
体验session:
import tensorflow as tf
input1 = tf.constant(1)
print(input1)
input2 = tf.Variable(2,tf.int32)
print(input2)
input2 = input1
sess = tf.Session()
print(input2)
print(sess.run(input2))
可以看到在未运行session时 变量全部是张量 当运行完毕输出的才是一个整型数字
矩阵运算:
tf.diag(diagonal,name=None) #生成对角矩阵
1 2 3 4 |
|
1 2 3 4 |
|
tf.diag_part(input,name=None) #功能与tf.diag函数相反,返回对角阵的对角元素
1 2 3 4 |
|
1 |
|
tf.trace(x,name=None) #求一个2维Tensor足迹,即为对角值diagonal之和
1 2 3 4 |
|
tf.transpose(a,perm=None,name='transpose') #调换tensor的维度顺序,按照列表perm的维度排列调换tensor的顺序
1 2 3 4 5 6 7 |
|
tf.matmul(a,b,transpose_a=False,transpose_b=False,a_is_sparse=False,b_is_sparse=False,name=None) #矩阵相乘
transpose_a=False,transpose_b=False #运算前是否转置
a_is_sparse=False,b_is_sparse=False #a,b是否当作系数矩阵进行运算
1 2 3 4 5 |
|
1 2 |
|
tf.matrix_determinant(input,name=None) #计算行列式
1 2 3 4 |
|
1 |
|
tf.matrix_inverse(input,adjoint=None,name=None)
adjoint决定计算前是否进行转置
1 2 3 4 |
|
1 2 |
|
tf.cholesky(input,name=None) #对输入方阵cholesky分解,即为将一个对称正定矩阵表示成一个下三角矩阵L和其转置的乘积德分解
1 2 3 4 |
|
1 2 |
|