Tensorflow中矩陣運算函式

2021-09-30 13:56:15 字數 2704 閱讀 5395

tf.diag(diagonal,name=none)   #生成對角矩陣

import tensorflowas tf;

diagonal=[1,1,1,1]

with tf.session() as sess:

print(sess.run(tf.diag(diagonal)))

#輸出的結果為[[1 0 0 0]

[0 1 0 0]

[0 0 1 0]

[0 0 0 1]]

tf.diag_part(input,name=none)  #功能與tf.diag函式相反,返回對角陣的對角元素

import tensorflow as tf;

diagonal =tf.constant([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]])

with tf.session() as sess:

print(sess.run(tf.diag_part(diagonal)))

#輸出結果為[1,1,1,1]

tf.trace(x,name=none)  #求乙個2維tensor足跡,即為對角值diagonal之和

import tensorflow as tf;

diagonal =tf.constant([[1,0,0,3],[0,1,2,0],[0,1,1,0],[1,0,0,1]])

with tf.session() as sess:

print(sess.run(tf.trace(diagonal)))#輸出結果為4

tf.transpose(a,perm=none,name='transpose')  #調換tensor的維度順序,按照列表perm的維度排列調換tensor的順序

import tensorflow as tf;

diagonal =tf.constant([[1,0,0,3],[0,1,2,0],[0,1,1,0],[1,0,0,1]])

with tf.session() as sess:

print(sess.run(tf.transpose(diagonal))) #輸出結果為[[1 0 0 1]

[0 1 1 0]

[0 2 1 0]

[3 0 0 1]]

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是否當作係數矩陣進行運算

import tensorflow as tf;

a =tf.constant([1,0,0,3],shape=[2,2])

b =tf.constant([2,1,0,2],shape=[2,2])

with tf.session() as sess:

print(sess.run(tf.matmul(a,b)))

#輸出結果為[[2 1]

[0 6]]

tf.matrix_determinant(input,name=none)  #計算行列式

import tensorflow as tf;

a =tf.constant([1,0,0,3],shape=[2,2],dtype=tf.float32)

with tf.session() as sess:

print(sess.run(tf.matrix_determinant(a)))

#輸出結果為3.0
tf.matrix_inverse(input,adjoint=none,name=none)

adjoint決定計算前是否進行轉置

import tensorflow as tf;

a =tf.constant([1,0,0,2],shape=[2,2],dtype=tf.float64)

with tf.session() as sess:

print(sess.run(tf.matrix_inverse(a)))

#輸出結果為[[ 1.   0. ]

[ 0.   0.5]]

tf.cholesky(input,name=none) #對輸入方陣cholesky分解,即為將乙個對稱正定矩陣表示成乙個下三角矩陣l和其轉置的乘積德分解

import tensorflow as tf;

a =tf.constant([1,0,0,2],shape=[2,2],dtype=tf.float64)

with tf.session() as sess:

print(sess.run(tf.cholesky(a)))

#輸出結果為[[ 1.          0.        ]

[ 0.          1.41421356]]

TensorFlow 矩陣運算

矩陣的加法和乘法,具體的演算法在這裡不做過多的展開,有需要的同學可以自行搜尋一下線性代數相關的內容,這主要講解矩陣在tensorflow中的運算。具體使用如下 import tensorflow as tf data1 tf.constant 6,6 data2 tf.constant 2 2 da...

TensorFlow矩陣向量運算

1 向量點乘 結果是乙個向量在另乙個向量方向上投影的長度,是乙個標量。2 向量叉乘 結果是乙個和已有兩個向量都垂直的向量。向量a x1,y1 b x2,y2 a b x1 x2 y1 y2 a b cos a叉乘b x1 y2 x2 y1 a b sin tensorflow 3.矩陣乘 tf.ma...

tensorflow中向量與矩陣相乘

tensorflow學習的小白一枚。今天看到tensorflow中矩陣的乘法,看到有帖子說tensorflow中向量不能與矩陣直接相乘,不然會出錯。我就覺得很奇怪,tensorflow這麼流行的庫怎麼會出現這種弱智的問題呢?然後看了幾個帖子,怎麼解決這個問題的,看了半天,覺得太複雜了,並且他們寫錯了...