运算函数、复数操作函数、规约计算、 序列比较与索引提取以及错误类
前一章提到了许多关于张量的操作函数,这里接着将一些运算函数、复数操作函数、规约计算、 序列比较与索引提取以及错误类记录下来。
算数运算函数
函数 | 描述 |
---|
tf.asign(x,y,name=None) | 令x=y |
tf.add(x,y,name=None) | 求和 |
tf.subtract(x,y,name=None) | 减法 |
tf.multiply(x,y,name=None) | 乘法 |
tf.divide(x,y,name=None) | 除法 |
tf.mod(x,y,name=None) | |
tf.abs(x,name=None) | 取绝对值 |
tf.negative(x,name=None) | 取负 |
tf.sign(x,name=None) | 根据符号取值,-1、0、1 |
tf.square(x,name=None) | 计算平方 |
tf.round(x,name=None) | 舍入最接近的整数 |
tf.sqrt(x,name=None) | 开根号 |
tf.pow(x,y,name=None) | 幂次方计算 |
tf.exo(x,name=None) | |
tf.log(x,name=None) | 计算log |
tf.maximum(x,y,name=None) | 返回最大值 |
tf.minimum(x,y,name=None) | 返回最小值 |
tf.sin、cos、tan、atan | 三角函数 |
tf.cond | 满足条件就执行fn1,否则就执行fn2 |
矩阵相关的运算
函数 | 描述 |
---|
tf.diag(diagonal,name=None) | 返回一个给定对角值的对角tensor |
tf.diag_part(input,name=None) | 功能与上一个相反 |
tf.trace(x,name=None) | 求一个二维tensor的迹 |
tf.transpose(a,pern=None,name=“tranpose”) | 让输入a按照参数petm指定的维度顺序进行转置 |
tf.reverse(tensor,dims,name=None) | 沿着指定的维度对输入机型安排,其中dims为列表,元素含义为指向输入shape的索引。 |
tf.matmul(a,b,name=None) | 矩阵相乘 |
tf.matrix_determinant(input,nane=None) | 返回矩阵的行列式 |
tf.matrix_inverse(input,adjoint=None,name=None) | 求方阵的逆矩阵 |
tf.cholesky(input,name=None) | 对输入方阵cholesky分解,即把一个堆成正定矩阵表示成若一个下三角矩阵L和其转置的乘积的分解A=LL^T |
tf.matrix_slove(matrix,tbs,adjoint=None,name=None) | 求解矩阵方程,返回矩阵变量、matrix为矩阵的系数,rbs为矩阵方程的结果 |
复数操作函数
函数 | 描述 |
---|
tf.complex(real,imag,name=None) | 将两实数转化为复数 |
tf.complex_abx()x,name=None) | 求复数得绝对值,即长度 |
tf.conj(input,name=None) | 计算共轭复数 |
tf.imag(input,name=None) | 取得虚部 |
tf.real(input,name=None) | 取得实部 |
tf.flt(input,name=None) | 计算一维的离散傅里叶变换,输入类型为complex64 |
规约计算
规约计算会有降维的功能,所有reduce_XXX系列操作函数中,都是以XXX的手段进行降维。每个函数都会有axis参数,即沿那个方向。axis=0表示按列计算,axis=1表示按行计算。使用XXX方法进行降维。参数reduction_indices是为了兼容以前的版本与axis保证相同的含义。
函数 | 描述 |
---|
tf.reduces_sum(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 计算tensor的和,按axis方向进行 |
tf.reduces_prod(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 计算输入tensor元素的乘积,按照axis方向 |
tf.reduces_min(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 最小值 |
tf.reduces_max(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 最大值 |
tf.reduces_mean(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 平均值 |
tf.reduces_all(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 对tensor中的各个元素求逻辑与。 |
tf.reduces_any(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 对tensor中的各个元素求逻辑或。 |
序列比较与索引提取
函数 | 描述 |
---|
tf.argmin(input,name=None) | input中最小值的索引 |
tf.argmax(input,name=None) | input中最大值的索引 |
tf.setdiffId(x,y,name=None) | 返回x、y之间不同值的索引 |
tf.unique(x,name=None) | 返回一个唯一化列表 |
tf.invert_permuttation(x,name=None) | 将x中元素的值当作索引,返回新的张量 |
tf.random_shuffle(input)沿着input的第一维进行随机重新排列 | |
错误类
一个完成的框架当然少不了异常处理机制啦,接下来时一些tensorflow中的错误类,为了方便查询,所以将一些常用的错误类列了出来。
属性 | 描述 |
---|
class tf.OpError | 一个基本的错误类型,在当TF执行失败时报错 |
tf.OpError.op | 返回执行失败的操作节点 |
tf.OpError.node_def | yiNodeDef proto形式表示失败的OP |
tf.OpError.error_code | 描述该错误的整数错误代码 |
tf.OpErrormessage | 返回错误信息 |
class tf.errors.CancelledError | 当操作或者阶段被取消时报错 |
class tf.errors.UnknownError | 未知错误类型 |
class tf.errors.InvalidArgunmentError | 在接受到非法参数时报错 |
class tf.errors.NotFoundError | 当发现不存在所请求的一个实体时,比如文件或目录 |
class tf.errors.AlreadyExistsError | 当创建的实体已存在时报错 |
class tf.errors.PermissionDeniedError | 没有执行权限做某操作时报错 |
class tf.errors.ResourceExhaustedError | 资源耗尽时报错 |
class tf.errors.FailedPreconditionError | 系统没有条件执行某个行为时报错 |
class tf.errors.AbortedError | 操作中止时报错,常常在并发情形 |
class tf.errors.OutOfRangeError | 超出范围报错 |
class tf.errors.UnimplementedError | 某个操作没有执行时报错 |
class tf.errors.InternalError | 当系统经历了一个内部错误时报错 |
class tf.errors.DataLossError | 当出现不可恢复的错误 |
tf.errors.XXXX_init_(node,def_op,message) | 使用XXX方式创建以上各种错误类 |
记录完毕,希望对需要的小伙伴有所帮助。
参考资料:李金洪老师的《深度学习之TensorFlow入门、原理与进阶实战》。