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

猜你喜欢

转载自blog.csdn.net/huowa9077/article/details/80176257
今日推荐