tensorflow接口研读math_ops(二)

math_ops函数使用,本篇为线性代数,复数和fft。

1.51 tf.diag(diagonal, name=None)
功能:返回对角阵。
输入:tensor,秩为k<=3。
例:
a=tf.constant([1,2,3,4])
z=tf.diag(a)

z==>[[1 0 0 0
      0 2 0 0
      0 0 3 0
      0 0 0 4]]
1.52 tf.diag_part(input,name=None)
功能:返回对角阵的对角元素。
输入:tensor,且维度必须一致。
例:
a=tf.constant([[1,5,0,0],[0,2,0,0],[0,0,3,0],[0,0,0,4]])
z=tf.diag_part(a)

z==>[1,2,3,4]
1.53 tf.trace(x,name=None)
功能:返回矩阵的迹。
输入:tensor
例:
a=tf.constant([[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12],[13,14,15],[16,17,18]]])
z=tf.trace(a)

z==>[15 42]
1.54 tf.transpose(a,perm=None,name='transpose')
功能:矩阵转置。
输入:tensor,perm代表转置后的维度排列,决定了转置方法,默认为[n-1,....,0],n为a的维度。
例:
a=tf.constant([[1,2,3],[4,5,6]])
z=tf.transpose(a)#perm为[1,0],即0维和1维互换。

z==>[[1 4]
     [2 5]
     [3 6]]
1.55 tf.eye(num_rows, num_columns=None, batch_shape=None, dtype=tf.float32, name=None)
功能:返回单位阵。
输入:num_rows:矩阵的行数;num_columns:矩阵的列数,默认与行数相等
            batch_shape:若提供值,则返回batch_shape的单位阵。
例:
z=tf.eye(2,batch_shape=[2])

z==>[[[1. 0.]
      [0. 1.]]
     [[1. 0.]
      [0. 1.]]]
1.56 tf.matrix_diag(diagonal,name=None)
功能:根据对角值返回一批对角阵
输入:对角值
例:
a=tf.constant([[1,2,3],[4,5,6]])
z=tf.matrix_diag(a)

z==>[[[1 0 0]
      [0 2 0]
      [0 0 3]]
     [[4 0 0]
      [0 5 0]
      [0 0 6]]]
1.57 tf.matrix_diag_part(input,name=None)
功能:返回批对角阵的对角元素
输入:tensor,批对角阵
例:
a=tf.constant([[[1,3,0],[0,2,0],[0,0,3]],[[4,0,0],[0,5,0],[0,0,6]]])
z=tf.matrix_diag_part(a)

z==>[[1 2 3]
     [4 5 6]]
1.58 tf.matrix_band_part(input,num_lower,num_upper,name=None)
功能:复制一个矩阵,并将规定带之外的元素置为0。
     假设元素坐标为(m,n),则in_band(m, n) = (num_lower < 0 || (m-n) <= num_lower)) &&
                                          (num_upper < 0 || (n-m) <= num_upper)。
    band(m,n)=in_band(m,n)*input(m,n)。
    特殊情况:
          tf.matrix_band_part(input, 0, -1) ==> 上三角阵.
          tf.matrix_band_part(input, -1, 0) ==> 下三角阵.
          tf.matrix_band_part(input, 0, 0) ==> 对角阵.
输入:num_lower:如果为负,则结果右上空三角阵;
     num_lower:如果为负,则结果左下为空三角阵。
例:
a=tf.constant([[0,1,2,3],[-1,0,1,2],[-2,-1,0,1],[-3,-2,-1,0]])
z=tf.matrix_band_part(a,1,-1)

z==>[[0 1 2 3]
     [-1 0 1 2]
     [0 -1 0 1]
     [0 0 -1 0]]
1.59 tf.matrix_set_diag(input,diagonal,name=None)
功能:将输入矩阵的对角元素置换为对角元素。
输入:input:矩阵,diagonal:对角元素。
例:
a=tf.constant([[0,1,2,3],[-1,0,1,2],[-2,-1,0,1],[-3,-2,-1,0]])
z=tf.matrix_set_diag(a,[10,11,12,13])

z==>[[10  1  2  3]
     [-1 11  1  2]
     [0  -1 12  1]
     [0   0 -1 13]]
1.60 tf.matrix_transpose(a,name='matrix_transpose')
功能:进行矩阵转置。只对低维度的2维矩阵转置,功能同tf.transpose(a,perm=[0,1,3,2])。(若a为4维)
输入:矩阵。
1.61 tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None)
功能:矩阵乘法。配置后的矩阵a,b必须满足矩阵乘法对行列的要求。
输入:transpose_a,transpose_b:运算前是否转置;
      adjoint_a,adjoint_b:运算前进行共轭;
     a_is_sparse,b_is_sparse:a,b是否当作稀疏矩阵进行运算。
例:
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2])
z = tf.matmul(a, b)

z==>[[ 58  64]
     [139 154]]
1.62 tf.norm(tensor, ord='euclidean', axis=None, keep_dims=False, name=None)
功能:求取范数。
输入:ord:范数类型,默认为‘euclidean’,支持的有‘fro’,‘euclidean’,‘0’,‘1’,‘2’,‘np.inf’;
         axis:默认为‘None’,tensor为向量。
     keep_dims:默认为‘None’,结果为向量,若为True,保持维度。
例:
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3],dtype=tf.float32)
z = tf.norm(a)
z2=tf.norm(a,ord=1)
z3=tf.norm(a,ord=2)
z4=tf.norm(a,ord=1,axis=0)
z5=tf.norm(a,ord=1,axis=1)
z6=tf.norm(a,ord=1,axis=1,keep_dims=True)

z==>9.53939
z2==>21.0
z3==>9.53939
z4==>[5.  7.  9.]
z5==>[6.  15.]
z6==>[[6.]
      [15.]]
1.63 tf.matrix_determinant(input, name=None)
功能:求行列式。
输入:必须是float32,float64类型。
例:
a = tf.constant([1, 2, 3, 4],shape=[2,2],dtype=tf.float32)
z = tf.matrix_determinant(a)

z==>-2.0
1.64 tf.matrix_inverse(input, adjoint=None, name=None)
功能:求矩阵的逆。
输入:输入必须是float32,float64类型。adjoint表示计算前求转置 
例:
a = tf.constant([1, 2, 3, 4],shape=[2,2],dtype=tf.float64)
z = tf.matrix_inverse(a)

z==>[[-2.    1.]
     [1.5  -0.5]]
1.65 tf.cholesky(input, name=None)
功能:进行cholesky分解。
输入:注意输入必须是正定矩阵。
例:
a = tf.constant([2, -2, -2, 5],shape=[2,2],dtype=tf.float64)
z = tf.cholesky(a)

z==>[[ 1.41421356  0.        ]
     [-1.41421356  1.73205081]]
1.66 tf.cholesky_solve(chol, rhs, name=None)
功能:对方程‘AX=RHS’进行cholesky求解。
输入:chol=tf.cholesky(A)。
例:
a = tf.constant([2, -2, -2, 5],shape=[2,2],dtype=tf.float64)
chol = tf.cholesky(a)
RHS=tf.constant([3,10],shape=[2,1],dtype=tf.float64)
z=tf.cholesky_solve(chol,RHS)

z==>[[5.83333333]
     [4.33333333]] #A*X=RHS
1.67 tf.matrix_solve(matrix, rhs, adjoint=None, name=None)
功能:求线性方程组,matrix*X=rhs。
输入:adjoint:是否对matrix转置。
例:
a = tf.constant([2, -2, -2, 5],shape=[2,2],dtype=tf.float64)
RHS=tf.constant([3,10],shape=[2,1],dtype=tf.float64)
z=tf.matrix_solve(a,RHS)

z==>[[5.83333333]
     [4.33333333]]
1.68 tf.matrix_triangular_solve(matrix, rhs, lower=None, adjoint=None, name=None)
功能:求解matrix×X=rhs,matrix为上三角或下三角阵。
输入:lower:默认为None,matrix上三角元素为0;若为True,matrix下三角元素为0;
     adjoint:转置
例:
a = tf.constant([2, 4, -2, 5],shape=[2,2],dtype=tf.float64)
RHS=tf.constant([3,10],shape=[2,1],dtype=tf.float64)
z=tf.matrix_triangular_solve(a,RHS)

z==>[[1.5]
     [2.6]]
1.69 tf.matrix_solve_ls(matrix, rhs, l2_regularizer=0.0, fast=True, name=None)
功能:求解多个线性方程的最小二乘问题。
输入:。
例:
a = tf.constant([2, 4, -2, 5],shape=[2,2],dtype=tf.float64)
RHS=tf.constant([3,10],shape=[2,1],dtype=tf.float64)
z=tf.matrix_solve_ls(a,RHS)

z==>[[-1.38888889]
     [1.44444444]]
1.70 tf.qr(input, full_matrices=None, name=None)
功能:对矩阵进行qr分解。
输入:。
例:
a = tf.constant([1,2,2,1,0,2,0,1,1],shape=[3,3],dtype=tf.float64)
q,r=tf.qr(a)

q==>[[-0.70710678   0.57735027   -0.40824829]
     [-0.70710678  -0.57735027    0.40824829]
     [0.            0.57735027   0.81649658 ]]
r==>[[-1.41421356  -1.41421356   -2.82842712]
     [0.            1.73205081    0.57735027]
     [0.            0.            0.81649658]]
1.71 tf.self_adjoint_eig(tensor, name=None)
功能:求取特征值和特征向量。
输入:
例:
a = tf.constant([3,-1,-1,3],shape=[2,2],dtype=tf.float64)
e,v=tf.self_adjoint_eig(a)

e==>[2.  4.]
v==>[[0.70710678 0.70710678]
    [0.70710678 -0.70710678]]
1.72 tf.self_adjoint_eigvals(tensor, name=None)
功能:计算多个矩阵的特征值。
输入:shape=[....,N,N]。

1.73 tf.svd(tensor, full_matrices=False, compute_uv=True, name=None)
功能:进行奇异值分解。tensor=u×diag(s)×transpose(v)
输入:
例:
a = tf.constant([3,-1,-1,3],shape=[2,2],dtype=tf.float64)
s,u,v=tf.svd(a)

s==>[4. 2.]
u==>[[0.70710678 0.70710678]
    [-0.70710678 0.70710678]]
v==>[[0.70710678 0.70710678]
    [-0.70710678 0.70710678]]
1.74 tf.tensordot(a, b, axes, name=None)
功能:同numpy.tensordot,根据axis计算点乘。
输入:axes=1或axes=[[1],[0]],即为矩阵乘。
例:
a = tf.constant([1,2,3,4],shape=[2,2],dtype=tf.float64)
b = tf.constant([1,2,3,4],shape=[2,2],dtype=tf.float64)
z=tf.tensordot(a,b,axes=[[1],[1]])

z==>[[5.  11.]
     [11. 25.]]
1.75 tf.complex(real, imag, name=None)
功能:将实数转化为复数。
输入:real,imag:float32或float64。
例:
real = tf.constant([1,2],dtype=tf.float64)
imag = tf.constant([3,4],dtype=tf.float64)
z=tf.complex(real,imag)

z==>[1.+3.j  2.+4.j]
1.76 tf.conj(x, name=None)
功能:返回x的共轭复数。
输入:
例:
a = tf.constant([1+2j,2-3j])
z=tf.conj(a)

z==>[1.-2.j  2.+3.j]
1.77 tf.imag(input, name=None)
功能:返回虚数部分。
输入:`complex64`,`complex128`类型。
例:
a = tf.constant([1+2j,2-3j])
z=tf.imag(a)

z==>[2.  -3.]
1.78 tf.real(input,name=None)
功能:返回实数部分。
输入:`complex64`,`complex128`类型。
例:
a = tf.constant([1+2j,2-3j])
z=tf.real(a)

z==>[1.  2.]
1.79 ~1.84 fft变换
函数:
tf.fft(input, name=None)
tf.ifft(input, name=None)
tf.fft2d(input, name=None)
tf.ifft2d(input, name=None)
tf.fft3d(input, name=None)
tf.ifft3d(input, name=None)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • TF API数学计算tf...... :math(1)刚开始先给一个运行实例。tf是基于图(Graph)的计算系统...
    MachineLP阅读 3,432评论 0 1
  • 1. tf函数 tensorflow 封装的工具类函数 | 操作组 | 操作 ||:-------------| ...
    南墙已破阅读 5,058评论 0 5
  • image_op函数使用。 一、图像的读取及保存 二、尺寸调整 三、色彩模式调整 四 其它 Note that i...
    华夏意匠阅读 4,156评论 0 0
  • 【同读一本书.张磊沙】2016-1-27-07 ————————— ——《白银谷》 正文: “孙大掌柜呢,借口今年...
    张磊沙阅读 928评论 0 0
  • 一个从事摄影的朋友,总是时时给我带来各种触动,每次看他的文章总是会有莫名的情绪涌动出来,说不清道不明,尽管我们并不...
    无风絮自飞阅读 172评论 0 0