tf中的矩陣運算

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))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章