import tensorflow as tf
from numpy import newaxis
from tensorflow.python.ops import math_ops
## tf中的矩陣運算
# 點乘
a = tf.constant([[1,2],[3,4]])
b = tf.constant([[1,1],[2,2]])
sess = tf.session()
print(sess.run(a*b))
# 矩陣乘法
c = tf.constant([[1,2],[3,4]])
d = tf.constant([[1,1],[2,2]])
print(sess.run(tf.matmul(c,d)))
# 矩陣加法
# 矩陣和向量相加,每列加上向量
e = tf.constant([1,1])
print(sess.run(tf.matmul(c,d)+e))
# 增加乙個維度的矩陣乘法 即(?,m)*(?,n)= 對每個?(m,1)*(1,n)
def outer_product(x, y):
# numpy中包含的newaxis可以給原陣列增加乙個維度 np.newaxis放的位置不同,產生的新陣列也不同
return x[:, :, newaxis] * y[:, newaxis, :]
f = tf.constant([[1,2],[3,4]])
g = tf.constant([[1,1,3],[2,2,3]])
i = sess.run(outer_product(f,g))
print(i.shape)
# (?,n) (*) (?,n)點乘
h = tf.constant([[1,2],[3,4]])
j = tf.constant([2,2])
k = math_ops.multiply(h, j)
print(sess.run(k))
tf 矩陣行和列交換 tf矩陣基礎
一 placeholder tensorflow的設計理念稱之為計算流圖,在編寫程式時,首先構築整個系統的graph,並不會直接生效,這一點和python的其他數值計算庫 如numpy等 不同,graph為靜態的,類似於docker中的映象。然後,在實際的執行時,啟動乙個session,程式才會真正...
np和tf中建立隨機矩陣
建立乙個2層3行4列的矩陣 np.random.randn 2,3,4 正態 np.random.randint 1,100,10 隨機10個數,範圍從1到100,構成向量 np.random.randint 1,13,2,3 隨機2行3列的矩陣,值從1到13隨機 np.random.randint...
cublas中的矩陣運算
cublas是乙個可以與cuda一同使用的函式庫,它提供了多種矩陣運算的api,但是它列主序的儲存方式卻讓人十分疑惑,今天我就以cublas中的矩陣乘法運算簡單說一下我的理解。cublas中的矩陣乘法運算函式有5個,分別是cublassgemm cublasdgemm cublascgemm cub...